Commit c4033fce authored by Vitaly Lipatov's avatar Vitaly Lipatov

separate code for play command

parent 89d33e80
......@@ -333,7 +333,7 @@ check_command()
epm_cmd=prescription
;;
play) # HELPCMD: install the application from the official site (run without args to get list)
epm_cmd=prescription
epm_cmd=play
;;
-V|checkpkg|integrity) # HELPCMD: check package file integrity (checksum)
epm_cmd=checkpkg
......
#!/bin/sh
#
# Copyright (C) 2015, 2017, 2019, 2020 Etersoft
# Copyright (C) 2015, 2017, 2019, 2020 Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# TODO
epm_vardir=/var/lib/eepm
__save_installed_app()
{
[ -d "$epm_vardir" ] || return 0
estrlist list "$@" | $SUDO tee $epm_vardir/installed-app >/dev/null
}
__remove_installed_app()
{
[ -d "$epm_vardir" ] || return 0
local i
for i in $* ; do
$SUDO sed -i "/^$i$/d" $epm_vardir/installed-app
done
return 0
}
__check_installed_app()
{
[ -s $epm_vardir/installed-app ] || return 1
grep -q -- "^$1\$" $epm_vardir/installed-app
}
__list_installed_app()
{
cat $epm_vardir/installed-app 2>/dev/null
}
__epm_play_run()
{
local script="$psdir/$1.sh"
shift
local option="$1"
if [ ! -x "$script" ] ; then
fatal "Can't find play script $script."
fi
# allow use EGET in the scripts
__set_EGET
# also we will have DISTRVENDOR there
export PATH=$PROGDIR:$PATH
#info "Running $($script --description 2>/dev/null) ..."
docmd $script $option
}
epm_play()
{
# TODO: change to play.d
local psdir="$CONFIGDIR/prescription.d"
if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
cat <<EOF
Options:
APP - install APP
--remove APP - remove APP
--list - list all installed apps
--list-all - list all available apps
EOF
exit
fi
if [ "$1" = "--remove" ] ; then
shift
#__check_installed_app "$1" || fatal "$1 is not installed"
__epm_play_run $1 --remove
__remove_installed_app "$@"
exit
fi
if [ "$1" = "--list" ] || [ "$1" = "--installed" ] ; then
shift
echo "Installed:"
local i
for i in $(__list_installed_app) ; do
printf " %-20s - %s\n" "$i" "$($psdir/$i.sh --description 2>/dev/null)"
done
exit
fi
if [ "$1" == "--list-all" ] || [ -z "$*" ] ; then
echo "Run with a name of a play script to run:"
for i in $psdir/*.sh ; do
printf " %-20s - %s\n" "$(basename $i .sh)" "$($i --description 2>/dev/null)"
done
echo
echo "run epm play --list to list installed only or --remove to remove one"
exit
fi
__check_installed_app "$1" && info "$1 is already installed" && exit 1
__epm_play_run "$1" --run && __save_installed_app "$1"
}
......@@ -20,33 +20,6 @@
# TODO
epm_vardir=/var/lib/eepm
__save_installed_app()
{
[ -d "$epm_vardir" ] || return 0
estrlist list "$@" | $SUDO tee $epm_vardir/installed-app >/dev/null
}
__remove_installed_app()
{
[ -d "$epm_vardir" ] || return 0
local i
for i in $* ; do
$SUDO sed -i "/^$i$/d" $epm_vardir/installed-app
done
return 0
}
__check_installed_app()
{
[ -s $epm_vardir/installed-app ] || return 1
grep -q -- "^$1\$" $epm_vardir/installed-app
}
__list_installed_app()
{
cat $epm_vardir/installed-app 2>/dev/null
}
__epm_prescription_run()
{
......@@ -76,21 +49,12 @@ if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
cat <<EOF
Options:
APP - install APP
--remove APP - remove APP
--list - list all installed apps
--list-all - list all available apps
EOF
exit
fi
if [ "$1" = "--remove" ] ; then
shift
#__check_installed_app "$1" || fatal "$1 is not installed"
__epm_prescription_run $1 --remove
__remove_installed_app "$@"
exit
fi
if [ "$1" = "--list" ] || [ "$1" = "--installed" ] ; then
shift
echo "Installed:"
......@@ -107,10 +71,9 @@ if [ "$1" == "--list-all" ] || [ -z "$*" ] ; then
printf " %-20s - %s\n" "$(basename $i .sh)" "$($i --description 2>/dev/null)"
done
echo
echo "run epm play --list to list installed only or --remove to remove one"
echo "run epm prescription --list to list installed only"
exit
fi
__check_installed_app "$1" && info "$1 is already installed" && exit 1
__epm_prescription_run "$1" --run && __save_installed_app "$1"
__epm_prescription_run "$1" --run
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment