You need to sign in or sign up before continuing.
Commit f0c60273 authored by Vitaly Lipatov's avatar Vitaly Lipatov

update packed

parent 21ab561f
...@@ -126,6 +126,18 @@ sudocmd() ...@@ -126,6 +126,18 @@ sudocmd()
$SUDO "$@" $SUDO "$@"
} }
sudocmd_foreach()
{
local cmd
cmd="$1"
#showcmd "$@"
shift
for pkg in "$@" ; do
sudocmd $cmd $pkg
done
}
filter_strip_spaces() filter_strip_spaces()
{ {
# possible use just # possible use just
...@@ -152,6 +164,13 @@ fatal() ...@@ -152,6 +164,13 @@ fatal()
exit 1 exit 1
} }
warning()
{
if [ -z "$TEXTDOMAIN" ] ; then
echo "Warning: $@" >&2
fi
}
set_sudo() set_sudo()
{ {
SUDO="" SUDO=""
...@@ -237,7 +256,7 @@ case $DISTRNAME in ...@@ -237,7 +256,7 @@ case $DISTRNAME in
CMD="ipkg" CMD="ipkg"
;; ;;
*) *)
fatal "Do not known DISTRNAME $DISTRNAME" fatal "Have no suitable DISTRNAME $DISTRNAME"
;; ;;
esac esac
PMTYPE=$CMD PMTYPE=$CMD
...@@ -273,13 +292,13 @@ case $PMTYPE in ...@@ -273,13 +292,13 @@ case $PMTYPE in
#sudocmd repo-add $pkg_filenames #sudocmd repo-add $pkg_filenames
;; ;;
npackd) npackd)
docmd npackdcl add-repo --url=$pkg_filenames sudocmd npackdcl add-repo --url=$pkg_filenames
;; ;;
slackpkg) slackpkg)
echo "You need manually add repo to /etc/slackpkg/mirrors" echo "You need manually add repo to /etc/slackpkg/mirrors"
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -290,23 +309,46 @@ esac ...@@ -290,23 +309,46 @@ esac
epm_autoremove() epm_autoremove()
{ {
case $PMTYPE in case $PMTYPE in
#apt-rpm) apt-rpm)
# sudocmd apt-get autoclean # ALT Linux only
# ;; sudocmd remove-old-kernels
;;
apt-dpkg) apt-dpkg)
sudocmd apt-get autoremove sudocmd apt-get autoremove
;; ;;
#yum-rpm) aura)
# sudocmd yum clean all sudocmd aura -Oj
# ;; ;;
#urpm-rpm) yum-rpm)
# sudocmd urpmi --clean # cleanup orphanes?
# ;; while true ; do
docmd package-cleanup --leaves
# FIXME: package-cleanup have to use stderr for errors
local PKGLIST=$(package-cleanup --leaves | grep -v "Loaded plugins" | grep -v "Unable to")
[ -n "$PKGLIST" ] || break
sudocmd yum remove $PKGLIST
done
;;
urpm-rpm)
sudocmd urpme --auto-orphans
;;
emerge)
sudocmd emerge --depclean
docmd epm --skip-installed install gentoolkit
sudocmd revdep-rebuild
;;
pacman)
sudocmd pacman -Qdtq | sudocmd pacman -Rs -
;;
slackpkg)
# clean-system removes non official packages
#sudocmd slackpkg clean-system
;;
#zypper-rpm) #zypper-rpm)
# sudocmd zypper clean # sudocmd zypper clean
# ;; # ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -324,7 +366,7 @@ __epm_changelog_files() ...@@ -324,7 +366,7 @@ __epm_changelog_files()
docmd_foreach "rpm -p --changelog" $@ | less docmd_foreach "rpm -p --changelog" $@ | less
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -350,7 +392,7 @@ __epm_changelog_local_names() ...@@ -350,7 +392,7 @@ __epm_changelog_local_names()
docmd pacman -Qc $1 | less docmd pacman -Qc $1 | less
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -377,7 +419,7 @@ __epm_changelog_unlocal_names() ...@@ -377,7 +419,7 @@ __epm_changelog_unlocal_names()
# sudocmd zypper clean # sudocmd zypper clean
# ;; # ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -423,28 +465,19 @@ case $PMTYPE in ...@@ -423,28 +465,19 @@ case $PMTYPE in
#docmd package-cleanup --dupes #docmd package-cleanup --dupes
sudocmd package-cleanup --cleandupes sudocmd package-cleanup --cleandupes
# cleanup orphanes?
while true ; do
docmd package-cleanup --leaves
# FIXME: package-cleanup have to use stderr for errors
local PKGLIST=$(package-cleanup --leaves | grep -v "Loaded plugins" | grep -v "Unable to")
[ -n "$PKGLIST" ] || break
sudocmd yum remove $PKGLIST
done
docmd rpm -Va --nofiles --nodigest docmd rpm -Va --nofiles --nodigest
;; ;;
pacman) emerge)
sudocmd revdep-rebuild sudocmd revdep-rebuild
;; ;;
urpm-rpm) urpm-rpm)
sudocmd urpme --auto-orphans #sudocmd urpme --auto-orphans
;; ;;
zypper-rpm) zypper-rpm)
sudocmd zypper verify || exit sudocmd zypper verify || exit
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -523,20 +556,19 @@ check_pkg_integrity() ...@@ -523,20 +556,19 @@ check_pkg_integrity()
# TODO: Попробовать здесь оставить возможность перегрузки функций # TODO: Попробовать здесь оставить возможность перегрузки функций
case $EXT in case $EXT in
rpm) rpm)
docmd rpm --checksig $@ docmd rpm --checksig $1
;; ;;
deb) deb)
# FIXME: debsums -ca package ? # FIXME: debsums -ca package ?
docmd dpkg --contents $@ docmd dpkg --contents $1 >/dev/null && echo "Package $1 is correct."
;; ;;
bz2) bz2)
docmd bunzip -t $1 docmd bunzip -t $1
;; ;;
#*) *)
# fatal "Unknown package extension '$EXT' in $PKG package"
# ;;
esac
check_${EXT}_integrity "$PKG" || fatal "Unknown package extension '$EXT' in $PKG package" check_${EXT}_integrity "$PKG" || fatal "Unknown package extension '$EXT' in $PKG package"
;;
esac
} }
__epm_check_installed_pkg() __epm_check_installed_pkg()
...@@ -549,7 +581,7 @@ case $PMTYPE in ...@@ -549,7 +581,7 @@ case $PMTYPE in
docmd debsums $@ docmd debsums $@
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -580,7 +612,7 @@ case $PMTYPE in ...@@ -580,7 +612,7 @@ case $PMTYPE in
;; ;;
yum-rpm) yum-rpm)
sudocmd yum clean all sudocmd yum clean all
sudocmd yum makecache #sudocmd yum makecache
;; ;;
dnf-rpm) dnf-rpm)
sudocmd dnf clean all sudocmd dnf clean all
...@@ -594,10 +626,16 @@ case $PMTYPE in ...@@ -594,10 +626,16 @@ case $PMTYPE in
zypper-rpm) zypper-rpm)
sudocmd zypper clean sudocmd zypper clean
;; ;;
nix)
sudocmd nix-collect-garbage
;;
slackpkg)
;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
echo "It is recommend to run 'epm autoremove' also"
} }
...@@ -618,7 +656,7 @@ __epm_filelist_file() ...@@ -618,7 +656,7 @@ __epm_filelist_file()
CMD="dpkg --contents" CMD="dpkg --contents"
;; ;;
*) *)
fatal "Do not known query command for $PMTYPE" fatal "Have no suitable query command for $PMTYPE"
;; ;;
esac esac
...@@ -657,7 +695,7 @@ __epm_filelist_name() ...@@ -657,7 +695,7 @@ __epm_filelist_name()
return return
;; ;;
*) *)
fatal "Do not known query command for $PMTYPE" fatal "Have no suitable query command for $PMTYPE"
;; ;;
esac esac
...@@ -719,6 +757,10 @@ case $PMTYPE in ...@@ -719,6 +757,10 @@ case $PMTYPE in
is_installed $pkg_names && docmd pacman -Qi $pkg_names && return is_installed $pkg_names && docmd pacman -Qi $pkg_names && return
docmd pacman -Si $pkg_names docmd pacman -Si $pkg_names
;; ;;
aura)
is_installed $pkg_names && docmd pacman -Qi $pkg_names && return
docmd aura -Ai $pkg_names
;;
npackd) npackd)
# FIXME: --version= # FIXME: --version=
docmd npackdcl info --package=$pkg_names docmd npackdcl info --package=$pkg_names
...@@ -730,7 +772,7 @@ case $PMTYPE in ...@@ -730,7 +772,7 @@ case $PMTYPE in
docmd ipkg info $pkg_names docmd ipkg info $pkg_names
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -748,10 +790,11 @@ filter_out_installed_packages() ...@@ -748,10 +790,11 @@ filter_out_installed_packages()
LANG=C LC_ALL=C xargs -n1 rpm -q 2>&1 | grep 'is not installed' | LANG=C LC_ALL=C xargs -n1 rpm -q 2>&1 | grep 'is not installed' |
sed -e 's|^.*package \(.*\) is not installed.*|\1|g' sed -e 's|^.*package \(.*\) is not installed.*|\1|g'
;; ;;
"deb") # dpkg -l lists some non ii status (un, etc)
LANG=C LC_ALL=C xargs -n1 dpkg -l 2>&1 | grep 'no packages found matching' | #"deb")
sed -e 's|^.*no packages found matching \(.*\)|\1|g' # LANG=C LC_ALL=C xargs -n1 dpkg -l 2>&1 | grep -i 'no packages found matching' |
;; # sed -e 's|\.\+$||g' -e 's|^.*[Nn]o packages found matching \(.*\)|\1|g'
# ;;
*) *)
for i in $(cat) ; do for i in $(cat) ; do
is_installed $i || echo $i is_installed $i || echo $i
...@@ -760,6 +803,10 @@ filter_out_installed_packages() ...@@ -760,6 +803,10 @@ filter_out_installed_packages()
esac | sed -e "s|rpm-build-altlinux-compat[^ ]*||g" | filter_strip_spaces esac | sed -e "s|rpm-build-altlinux-compat[^ ]*||g" | filter_strip_spaces
} }
__use_zypper_no_gpg_checks()
{
a= zypper install --help 2>&1 | grep -q -- "--no-gpg-checks" && echo "--no-gpg-checks"
}
epm_install_names() epm_install_names()
{ {
...@@ -788,6 +835,9 @@ epm_install_names() ...@@ -788,6 +835,9 @@ epm_install_names()
pacman) pacman)
sudocmd pacman -S $force $nodeps $@ sudocmd pacman -S $force $nodeps $@
return ;; return ;;
aura)
sudocmd aura -A $force $nodeps $@
return ;;
yum-rpm) yum-rpm)
sudocmd yum $YUMOPTIONS install $@ sudocmd yum $YUMOPTIONS install $@
return ;; return ;;
...@@ -800,11 +850,16 @@ epm_install_names() ...@@ -800,11 +850,16 @@ epm_install_names()
mpkg) mpkg)
sudocmd mpkg install $@ sudocmd mpkg install $@
return ;; return ;;
npackd)
separate_installed $@
# FIXME: fix return status
[ -n "$pkg_noninstalled" ] && sudocmd npackdcl add --package=$@ $pkg_noninstalled
[ -n "$pkg_installed" ] && sudocmd npackdcl update --package=$@ $pkg_installed
return ;;
slackpkg) slackpkg)
separate_installed $@ separate_installed $@
# TODO: use upgrade if package is already installed [ -n "$pkg_noninstalled" ] && sudocmd_foreach "/usr/sbin/slackpkg install" $pkg_noninstalled
[ -n "$pkg_noninstalled" ] && sudocmd /usr/sbin/slackpkg install $pkg_noninstalled [ -n "$pkg_installed" ] && sudocmd_foreach "/usr/sbin/slackpkg upgrade" $pkg_installed
[ -n "$pkg_installed" ] && sudocmd /usr/sbin/slackpkg upgrade $pkg_installed
return ;; return ;;
homebrew) homebrew)
separate_installed $@ separate_installed $@
...@@ -815,8 +870,13 @@ epm_install_names() ...@@ -815,8 +870,13 @@ epm_install_names()
[ -n "$force" ] && force=-force-depends [ -n "$force" ] && force=-force-depends
sudocmd ipkg $force install $@ sudocmd ipkg $force install $@
return ;; return ;;
nix)
separate_installed $@
[ -n "$pkg_noninstalled" ] && sudocmd nix-env --install $pkg_noninstalled
[ -n "$pkg_installed" ] && sudocmd nix-env --upgrade $pkg_installed
return ;;
*) *)
fatal "Do not known install command for $PMTYPE" fatal "Have no suitable install command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -841,12 +901,18 @@ epm_ni_install_names() ...@@ -841,12 +901,18 @@ epm_ni_install_names()
pkgsrc) pkgsrc)
sudocmd pkg_add -r $@ sudocmd pkg_add -r $@
return ;; return ;;
emerge)
sudocmd emerge -uD $@
return ;;
pacman) pacman)
sudocmd pacman -S --noconfirm $force $nodeps $@ sudocmd pacman -S --noconfirm $force $nodeps $@
return ;; return ;;
aura)
sudocmd aura -A $force $nodeps $@
return ;;
npackd) npackd)
# npackdcl update --package=<package> (remove old and install new) # npackdcl update --package=<package> (remove old and install new)
docmd npackdcl add --package=$@ sudocmd npackdcl add --package=$@
return ;; return ;;
chocolatey) chocolatey)
docmd chocolatey install $@ docmd chocolatey install $@
...@@ -854,16 +920,28 @@ epm_ni_install_names() ...@@ -854,16 +920,28 @@ epm_ni_install_names()
ipkg) ipkg)
sudocmd ipkg -force-defaults install $@ sudocmd ipkg -force-defaults install $@
return ;; return ;;
nix)
sudocmd nix-env --install $@
return ;;
slackpkg) slackpkg)
# TODO: use upgrade if package is already installed separate_installed $@
sudocmd /usr/sbin/slackpkg -batch=on -default_answer=yes install $@ # FIXME: broken status when use batch and default answer
[ -n "$pkg_noninstalled" ] && sudocmd_foreach "/usr/sbin/slackpkg -batch=on -default_answer=yes install" $pkg_noninstalled
[ -n "$pkg_installed" ] && sudocmd_foreach "/usr/sbin/slackpkg -batch=on -default_answer=yes upgrade" $pkg_installed
return ;; return ;;
*) *)
fatal "Do not known appropriate install command for $PMTYPE" fatal "Have no suitable appropriate install command for $PMTYPE"
;; ;;
esac esac
} }
__epm_check_if_rpm_already_installed()
{
# Not: we can make optimize if just check version?
LANG=C $SUDO rpm -Uvh $force $nodeps $@ 2>&1 | grep -q "is already installed"
}
epm_install_files() epm_install_files()
{ {
[ -z "$1" ] && return [ -z "$1" ] && return
...@@ -871,9 +949,12 @@ epm_install_files() ...@@ -871,9 +949,12 @@ epm_install_files()
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm)
sudocmd rpm -Uvh $force $nodeps $@ && return sudocmd rpm -Uvh $force $nodeps $@ && return
# TODO: check for "is already installed" local RES=$?
__epm_check_if_rpm_already_installed $@ && return
# if run with --nodeps, do not fallback on hi level # if run with --nodeps, do not fallback on hi level
[ -n "$nodeps" ] && return [ -n "$nodeps" ] && return $RES
# use install_names # use install_names
;; ;;
...@@ -882,35 +963,50 @@ epm_install_files() ...@@ -882,35 +963,50 @@ epm_install_files()
if [ -n "$non_interactive" ] ; then if [ -n "$non_interactive" ] ; then
DPKGOPTIONS="--force-confdef --force-confold" DPKGOPTIONS="--force-confdef --force-confold"
fi fi
# FIXME: return false in case no install and in case install with broken deps
sudocmd dpkg $DPKGOPTIONS -i $@ sudocmd dpkg $DPKGOPTIONS -i $@
local RES=$?
# if run with --nodeps, do not fallback on hi level # if run with --nodeps, do not fallback on hi level
[ -n "$nodeps" ] && return [ -n "$nodeps" ] && return $RES
# fall to apt-get -f install for fix deps # fall to apt-get -f install for fix deps
# can't use APTOPTIONS with empty install args # can't use APTOPTIONS with empty install args
epm_install_names -f epm_install_names -f
# repeat install for get correct status
sudocmd dpkg $DPKGOPTIONS -i $@
return return
;; ;;
yum-rpm|dnf-rpm) yum-rpm|dnf-rpm)
sudocmd rpm -Uvh $force $nodeps $@ && return sudocmd rpm -Uvh $force $nodeps $@ && return
# if run with --nodeps, do not fallback on hi level # if run with --nodeps, do not fallback on hi level
__epm_check_if_rpm_already_installed $@ && return
[ -n "$nodeps" ] && return [ -n "$nodeps" ] && return
YUMOPTIONS=--nogpgcheck YUMOPTIONS=--nogpgcheck
# use install_names # use install_names
;; ;;
zypper-rpm) zypper-rpm)
sudocmd rpm -Uvh $force $nodeps $@ && return sudocmd rpm -Uvh $force $nodeps $@ && return
local RES=$?
__epm_check_if_rpm_already_installed $@ && return
# if run with --nodeps, do not fallback on hi level # if run with --nodeps, do not fallback on hi level
[ -n "$nodeps" ] && return [ -n "$nodeps" ] && return $RES
ZYPPEROPTIONS=--no-gpg-checks ZYPPEROPTIONS=$(__use_zypper_no_gpg_checks)
# use install_names # use install_names
;; ;;
urpm-rpm) urpm-rpm)
sudocmd rpm -Uvh $force $nodeps $@ && return sudocmd rpm -Uvh $force $nodeps $@ && return
local RES=$?
__epm_check_if_rpm_already_installed $@ && return
# if run with --nodeps, do not fallback on hi level # if run with --nodeps, do not fallback on hi level
[ -n "$nodeps" ] && return [ -n "$nodeps" ] && return $RES
URPMOPTIONS=--no-verify-rpm URPMOPTIONS=--no-verify-rpm
# use install_names # use install_names
...@@ -918,9 +1014,15 @@ epm_install_files() ...@@ -918,9 +1014,15 @@ epm_install_files()
pkgsrc) pkgsrc)
sudocmd pkg_add $@ sudocmd pkg_add $@
return ;; return ;;
emerge)
load_helper epm-install-emerge
sudocmd epm_install_emerge $@
return ;;
pacman) pacman)
sudocmd pacman -U --noconfirm $force $nodeps $@ && return sudocmd pacman -U --noconfirm $force $nodeps $@ && return
[ -n "$nodeps" ] && return local RES=$?
[ -n "$nodeps" ] && return $RES
sudocmd pacman -U $force $@ sudocmd pacman -U $force $@
return ;; return ;;
slackpkg) slackpkg)
...@@ -944,6 +1046,10 @@ epm_print_install_command() ...@@ -944,6 +1046,10 @@ epm_print_install_command()
pkgsrc) pkgsrc)
echo "pkg_add $@" echo "pkg_add $@"
;; ;;
emerge)
# need be placed in /usr/portage/packages/somewhere
echo "emerge --usepkg $@"
;;
pacman) pacman)
echo "pacman -U --noconfirm --force $nodeps $@" echo "pacman -U --noconfirm --force $nodeps $@"
;; ;;
...@@ -957,7 +1063,7 @@ epm_print_install_command() ...@@ -957,7 +1063,7 @@ epm_print_install_command()
echo "ipkg install $@" echo "ipkg install $@"
;; ;;
*) *)
fatal "Do not known appropriate install command for $PMTYPE" fatal "Have no suitable appropriate install command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -970,7 +1076,7 @@ epm_install() ...@@ -970,7 +1076,7 @@ epm_install()
return return
fi fi
[ -n "$pkg_files$pkg_names" ] || fatal "Run install without packages" [ -n "$pkg_files$pkg_names" ] || { echo "Skip empty install list" ; return 22 ; }
local names="$(echo $pkg_names | filter_out_installed_packages)" local names="$(echo $pkg_names | filter_out_installed_packages)"
local files="$(echo $pkg_files | filter_out_installed_packages)" local files="$(echo $pkg_files | filter_out_installed_packages)"
...@@ -981,6 +1087,105 @@ epm_install() ...@@ -981,6 +1087,105 @@ epm_install()
epm_install_files $files epm_install_files $files
} }
# File bin/epm-Install:
epm_Install()
{
# copied from epm_install
local names="$(echo $pkg_names | filter_out_installed_packages)"
local files="$(echo $pkg_files | filter_out_installed_packages)"
[ -z "$files$names" ] && echo "Skip empty install list" && return 22
# do update only if really need install something
case $PMTYPE in
yum-rpm)
;;
*)
epm_update || return
;;
esac
epm_install_names $names || return
epm_install_files $files
}
# File bin/epm-install-emerge:
__emerge_install_ebuild()
{
local EBUILD="$1"
[ -s "$EBUILD" ] || fatal ".ebuild file '$EBUILD' is missing"
# load ebuild and get vars
. $(pwd)/$EBUILD
[ -n "$SRC_URI" ] || fatal "Can't load SRC_URI from $EBUILD"
# try to detect tarballs
local TARBALLS=
local BASEDIR=$(dirname $EBUILD)
for i in $SRC_URI ; do
[ -s "$BASEDIR/$(basename $i)" ] || continue
TARBALLS="$TARBALLS $BASEDIR/$(basename $i)"
done
local PORTAGENAME=epm
local LP=/usr/local/portage/$PORTAGENAME
docmd mkdir -p $LP/
MAKECONF=/etc/portage/make.conf
[ -r "$MAKECONF" ] || MAKECONF=/etc/make.conf
if ! grep -v "^#" $MAKECONF | grep -q $LP ; then
echo "PORTDIR_OVERLAY=\"$LP \${PORTDIR_OVERLAY}\"" >>$MAKECONF
# Overlay name
mkdir -p $LP/profiles/
echo "$PORTAGENAME" > $LP/profiles/repo_name
fi
# copy tarballs
local DDIR=/usr/portage/distfiles
[ -d /var/calculate/remote/distfiles ] && DDIR=/var/calculate/remote/distfiles
docmd cp -f $TARBALLS $DDIR/ || return
# copy ebuild
docmd cp -f $EBUILD $LP/ || return
cd $LP
docmd ebuild $(basename $EBUILD) digest
cd -
# FIXME: more correcty get name
local PKGNAME=$(echo $EBUILD | sed -e "s|-[0-9].*||g")
docmd emerge -av $PKGNAME || return
}
__emerge_install_tbz2()
{
local TGDIR=/usr/portage/packages/app-arch
mkdir -p $TGDIR
cp $i $TGDIR || return
docmd emerge --usepkg $TGDIR/$(basename $i) || return
}
epm_install_emerge()
{
local EBUILD=
#local TARBALLS=
local i
# search ebuild in the args
for i in $* ; do
if echo $i | grep -q ebuild ; then
__emerge_install_ebuild $i || return
elif echo $i | grep -q "\.tbz2$" ; then
__emerge_install_tbz2 $i || return
# else
# TARBALLS="$TARBALLS $i"
fi
done
}
# File bin/epm-kernel_update: # File bin/epm-kernel_update:
epm_kernel_update() epm_kernel_update()
...@@ -995,7 +1200,7 @@ epm_kernel_update() ...@@ -995,7 +1200,7 @@ epm_kernel_update()
case $PMTYPE in case $PMTYPE in
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -1033,10 +1238,15 @@ case $PMTYPE in ...@@ -1033,10 +1238,15 @@ case $PMTYPE in
fi fi
;; ;;
npackd) npackd)
CMD="npackdcl list" CMD="npackdcl list --status=installed"
# TODO: use search if pkg_filenames is not empty
;; ;;
slackpkg) slackpkg)
CMD="ls -1 /var/log/packages/" CMD="ls -1 /var/log/packages/"
if [ -n "$short" ] ; then
docmd ls -1 /var/log/packages/ | sed -e "s|-[0-9].*||g"
return
fi
;; ;;
homebrew) homebrew)
CMD="brew $pkg_filenames" CMD="brew $pkg_filenames"
...@@ -1045,7 +1255,7 @@ case $PMTYPE in ...@@ -1045,7 +1255,7 @@ case $PMTYPE in
CMD="ipkg list" CMD="ipkg list"
;; ;;
*) *)
fatal "Do not known query command for $PMTYPE" fatal "Have no suitable query command for $PMTYPE"
;; ;;
esac esac
...@@ -1066,6 +1276,51 @@ epm_programs() ...@@ -1066,6 +1276,51 @@ epm_programs()
xargs $0 -qf --quiet --short | sort -u xargs $0 -qf --quiet --short | sort -u
} }
# File bin/epm-provides:
epm_provides()
{
local CMD
[ -n "$pkg_filenames" ] || fatal "Run query without names"
case $PMTYPE in
*-rpm)
CMD="rpm -q --provides -p"
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
esac
[ -n "$pkg_files" ] && docmd $CMD $pkg_files
case $PMTYPE in
apt-rpm)
if is_installed $pkg_names ; then
CMD="rpm -q --provides"
else
CMD="apt-cache depends"
fi
;;
urpm-rpm|zypper-rpm)
if is_installed $pkg_names ; then
CMD="rpm -q --provides"
else
fatal "FIXME: use hi level commands"
fi
;;
emerge)
CMD="equery files"
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
esac
[ -n "$pkg_names" ] && docmd $CMD $pkg_names
}
# File bin/epm-query: # File bin/epm-query:
...@@ -1119,11 +1374,12 @@ __epm_query_name() ...@@ -1119,11 +1374,12 @@ __epm_query_name()
CMD="rpm -q" CMD="rpm -q"
;; ;;
apt-dpkg) apt-dpkg)
CMD="dpkg -l" #docmd dpkg -l $@
docmd dpkg -l $@ | grep "^ii"
# TODO: make rpm-like output # TODO: make rpm-like output
#showcmd dpkg -l $pkg_filenames #showcmd dpkg -l $pkg_filenames
#dpkg -l $pkg_filenames | grep "^ii" #dpkg -l $pkg_filenames | grep "^ii"
#return return
;; ;;
npackd) npackd)
CMD="npackdcl path --package=$@" CMD="npackdcl path --package=$@"
...@@ -1144,7 +1400,7 @@ __epm_query_name() ...@@ -1144,7 +1400,7 @@ __epm_query_name()
is_installed() is_installed()
{ {
#pkg_filenames="$@" epm_query >/dev/null #pkg_filenames="$@" epm_query >/dev/null
epm installed $@ >/dev/null epm installed $@ >/dev/null 2>/dev/null
} }
separate_installed() separate_installed()
...@@ -1240,7 +1496,7 @@ __do_query() ...@@ -1240,7 +1496,7 @@ __do_query()
CMD="ipkg files" CMD="ipkg files"
;; ;;
*) *)
fatal "Do not known query command for $PMTYPE" fatal "Have no suitable query command for $PMTYPE"
;; ;;
esac esac
...@@ -1271,7 +1527,7 @@ __do_short_query() ...@@ -1271,7 +1527,7 @@ __do_short_query()
return return
;; ;;
*) *)
fatal "Do not known query command for $PMTYPE" fatal "Have no suitable query command for $PMTYPE"
;; ;;
esac esac
...@@ -1327,7 +1583,7 @@ epm_reinstall_names() ...@@ -1327,7 +1583,7 @@ epm_reinstall_names()
esac esac
# fallback to generic install # fallback to generic install
epm_install_names epm_install_names $@
} }
epm_reinstall_files() epm_reinstall_files()
...@@ -1406,7 +1662,7 @@ epm_release_upgrade() ...@@ -1406,7 +1662,7 @@ epm_release_upgrade()
epm Upgrade epm Upgrade
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -1479,10 +1735,13 @@ epm_remove_names() ...@@ -1479,10 +1735,13 @@ epm_remove_names()
sudocmd mpkg remove $@ sudocmd mpkg remove $@
return ;; return ;;
npackd) npackd)
docmd npackdcl remove --package=$@ sudocmd npackdcl remove --package=$@
return ;;
nix)
sudocmd nix-env --uninstall $@
return ;; return ;;
chocolatey) chocolatey)
docmd chocolatey uninstall $@ sudocmd chocolatey uninstall $@
return ;; return ;;
slackpkg) slackpkg)
sudocmd /usr/sbin/slackpkg remove $@ sudocmd /usr/sbin/slackpkg remove $@
...@@ -1495,7 +1754,7 @@ epm_remove_names() ...@@ -1495,7 +1754,7 @@ epm_remove_names()
sudocmd ipkg $force remove $@ sudocmd ipkg $force remove $@
return ;; return ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -1553,7 +1812,7 @@ epm_print_remove_command() ...@@ -1553,7 +1812,7 @@ epm_print_remove_command()
echo "ipkg remove $@" echo "ipkg remove $@"
;; ;;
*) *)
fatal "Do not known appropriate remove command for $PMTYPE" fatal "Have no suitable appropriate remove command for $PMTYPE"
;; ;;
esac esac
} }
...@@ -1609,13 +1868,13 @@ case $PMTYPE in ...@@ -1609,13 +1868,13 @@ case $PMTYPE in
echo "You need remove repo from /etc/pacman.conf" echo "You need remove repo from /etc/pacman.conf"
;; ;;
npackd) npackd)
docmd npackdcl remove-repo --url=$pkg_filenames sudocmd npackdcl remove-repo --url=$pkg_filenames
;; ;;
slackpkg) slackpkg)
echo "You need remove repo from /etc/slackpkg/mirrors" echo "You need remove repo from /etc/slackpkg/mirrors"
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -1669,7 +1928,7 @@ case $PMTYPE in ...@@ -1669,7 +1928,7 @@ case $PMTYPE in
docmd grep -v -- "^#\|^$" /etc/slackpkg/mirrors docmd grep -v -- "^#\|^$" /etc/slackpkg/mirrors
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -1692,7 +1951,7 @@ case $PMTYPE in ...@@ -1692,7 +1951,7 @@ case $PMTYPE in
return return
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -1713,7 +1972,7 @@ case $PMTYPE in ...@@ -1713,7 +1972,7 @@ case $PMTYPE in
CMD="apt-cache depends" CMD="apt-cache depends"
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -1746,6 +2005,9 @@ case $PMTYPE in ...@@ -1746,6 +2005,9 @@ case $PMTYPE in
pacman) pacman)
CMD="pacman -Ss" CMD="pacman -Ss"
;; ;;
aura)
CMD="aura -As"
;;
yum-rpm) yum-rpm)
CMD="yum search" CMD="yum search"
;; ;;
...@@ -1759,7 +2021,8 @@ case $PMTYPE in ...@@ -1759,7 +2021,8 @@ case $PMTYPE in
CMD="mpkg search" CMD="mpkg search"
;; ;;
npackd) npackd)
fatal "FIXME: Have not idea for search with npackdcl list" docmd npackdcl search --query="$pkg_filenames" --status=all
return
;; ;;
chocolatey) chocolatey)
CMD="chocolatey list" CMD="chocolatey list"
...@@ -1774,7 +2037,7 @@ case $PMTYPE in ...@@ -1774,7 +2037,7 @@ case $PMTYPE in
CMD="brew search" CMD="brew search"
;; ;;
*) *)
fatal "Do not known search command for $PMTYPE" fatal "Have no suitable search command for $PMTYPE"
;; ;;
esac esac
...@@ -1840,7 +2103,7 @@ case $PMTYPE in ...@@ -1840,7 +2103,7 @@ case $PMTYPE in
CMD="ipkg search" CMD="ipkg search"
;; ;;
*) *)
fatal "Do not known search file command for $PMTYPE" fatal "Have no suitable search file command for $PMTYPE"
;; ;;
esac esac
...@@ -1897,8 +2160,14 @@ _epm_do_simulate() ...@@ -1897,8 +2160,14 @@ _epm_do_simulate()
CMD="zypper --non-interactive install" CMD="zypper --non-interactive install"
;; ;;
emerge) emerge)
echo "FIXME: Skip with emerge" local res=0
return ;; for pkg in $filenames ; do
is_installed $pkg && continue
docmd emerge --pretend $pkg && continue
pkg=1
break
done
return $res ;;
pacman) pacman)
showcmd $SUDO pacman -v -S $filenames showcmd $SUDO pacman -v -S $filenames
echo no | $SUDO pacman -v -S $filenames echo no | $SUDO pacman -v -S $filenames
...@@ -1917,7 +2186,7 @@ _epm_do_simulate() ...@@ -1917,7 +2186,7 @@ _epm_do_simulate()
done done
return $res ;; return $res ;;
*) *)
fatal "Do not known simulate command for $PMTYPE" fatal "Have no suitable simulate command for $PMTYPE"
;; ;;
esac esac
...@@ -1967,6 +2236,9 @@ case $PMTYPE in ...@@ -1967,6 +2236,9 @@ case $PMTYPE in
pacman) pacman)
sudocmd pacman -S -y sudocmd pacman -S -y
;; ;;
aura)
sudocmd aura -A -y
;;
zypper-rpm) zypper-rpm)
sudocmd zypper refresh sudocmd zypper refresh
;; ;;
...@@ -1979,6 +2251,9 @@ case $PMTYPE in ...@@ -1979,6 +2251,9 @@ case $PMTYPE in
deepsolver-rpm) deepsolver-rpm)
sudocmd ds-update sudocmd ds-update
;; ;;
npackd)
sudocmd packdcl detect # get packages from MSI database
;;
homebrew) homebrew)
sudocmd brew update sudocmd brew update
;; ;;
...@@ -1986,7 +2261,7 @@ case $PMTYPE in ...@@ -1986,7 +2261,7 @@ case $PMTYPE in
sudocmd ipkg update sudocmd ipkg update
;; ;;
*) *)
fatal "Do not known update command for $PMTYPE" fatal "Have no suitable update command for $PMTYPE"
;; ;;
esac esac
...@@ -2001,10 +2276,12 @@ epm_upgrade() ...@@ -2001,10 +2276,12 @@ epm_upgrade()
case $PMTYPE in case $PMTYPE in
apt-rpm|apt-dpkg) apt-rpm|apt-dpkg)
# FIXME: apt-get update before # non_interactive
# Функцию добавления параметра при условии
CMD="apt-get dist-upgrade" CMD="apt-get dist-upgrade"
;; ;;
yum-rpm) yum-rpm)
# can do update repobase automagically
CMD="yum update" CMD="yum update"
;; ;;
dnf-rpm) dnf-rpm)
...@@ -2018,7 +2295,10 @@ epm_upgrade() ...@@ -2018,7 +2295,10 @@ epm_upgrade()
CMD="zypper dist-upgrade" CMD="zypper dist-upgrade"
;; ;;
pacman) pacman)
CMD="pacman -S -u" CMD="pacman -S -u $force"
;;
aura)
CMD="aura -A -u"
;; ;;
emerge) emerge)
CMD="emerge -NuDa world" CMD="emerge -NuDa world"
...@@ -2039,7 +2319,7 @@ epm_upgrade() ...@@ -2039,7 +2319,7 @@ epm_upgrade()
CMD="/usr/sbin/slackpkg upgrade-all" CMD="/usr/sbin/slackpkg upgrade-all"
;; ;;
*) *)
fatal "Do not known command for $PMTYPE" fatal "Have no suitable command for $PMTYPE"
;; ;;
esac esac
...@@ -2059,7 +2339,33 @@ epm_Upgrade() ...@@ -2059,7 +2339,33 @@ epm_Upgrade()
;; ;;
esac esac
epm_upgrade $pkg_filenames epm_upgrade
}
# File bin/epm-whatdepends:
epm_whatdepends()
{
local CMD
[ -n "$pkg_names" ] || fatal "Run query without names"
case $PMTYPE in
apt-rpm|apt-dpkg)
CMD="apt-cache whatdepends"
;;
yum-rpm)
CMD="repoquery --whatrequires"
;;
emerge)
CMD="equery depends -a"
;;
*)
fatal "Have no suitable command for $PMTYPE"
;;
esac
[ -n "$pkg_names" ] && docmd $CMD $pkg_names
} }
internal_distr_info() internal_distr_info()
{ {
...@@ -2169,7 +2475,9 @@ if distro altlinux-release ; then ...@@ -2169,7 +2475,9 @@ if distro altlinux-release ; then
elif distro gentoo-release ; then elif distro gentoo-release ; then
DISTRIB_ID="Gentoo" DISTRIB_ID="Gentoo"
DISTRIB_RELEASE=`basename $(readlink $ROOTDIR/etc/make.profile)` MAKEPROFILE=$(readlink $ROOTDIR/etc/portage/make.profile 2>/dev/null) || MAKEPROFILE=$(readlink $ROOTDIR/etc/make.profile)
DISTRIB_RELEASE=`basename $MAKEPROFILE`
echo $DISTRIB_RELEASE | grep -q "[0-9]" || DISTRIB_RELEASE=`basename $(dirname $MAKEPROFILE)`
# Slackware based # Slackware based
elif distro mopslinux-version ; then elif distro mopslinux-version ; then
...@@ -2378,7 +2686,7 @@ $(get_help HELPOPT) ...@@ -2378,7 +2686,7 @@ $(get_help HELPOPT)
print_version() print_version()
{ {
echo "EPM package manager version 1.2.2" echo "EPM package manager version 1.2.7"
echo "Running on $($DISTRVENDOR) ('$PMTYPE' package manager uses '$PKGFORMAT' package format)" echo "Running on $($DISTRVENDOR) ('$PMTYPE' package manager uses '$PKGFORMAT' package format)"
echo "Copyright (c) Etersoft 2012-2013" echo "Copyright (c) Etersoft 2012-2013"
echo "This program may be freely redistributed under the terms of the GNU AGPLv3." echo "This program may be freely redistributed under the terms of the GNU AGPLv3."
...@@ -2432,6 +2740,9 @@ case $progname in ...@@ -2432,6 +2740,9 @@ case $progname in
epmqp) epmqp)
epm_cmd=query_package epm_cmd=query_package
;; ;;
epmu)
epm_cmd=update
;;
epm|upm|eepm) epm|upm|eepm)
;; ;;
*) *)
...@@ -2450,7 +2761,7 @@ check_command() ...@@ -2450,7 +2761,7 @@ check_command()
-i|install|add) # HELPCMD: install package(s) from remote repositories or from local file -i|install|add) # HELPCMD: install package(s) from remote repositories or from local file
epm_cmd=install epm_cmd=install
;; ;;
-e|-P|remove|delete) # HELPCMD: remove (delete) package(s) from the database and the system -e|-P|remove|delete|uninstall) # HELPCMD: remove (delete) package(s) from the database and the system
epm_cmd=remove epm_cmd=remove
;; ;;
-s|search) # HELPCMD: search in remote package repositories -s|search) # HELPCMD: search in remote package repositories
...@@ -2467,6 +2778,9 @@ check_command() ...@@ -2467,6 +2778,9 @@ check_command()
reinstall) # HELPCMD: reinstall package(s) from remote repositories or from local file reinstall) # HELPCMD: reinstall package(s) from remote repositories or from local file
epm_cmd=reinstall epm_cmd=reinstall
;; ;;
Install) # HELPCMD: perform update package repo info and install package(s) via install command
epm_cmd=Install
;;
-q|installed) # HELPCMD: check presence of package(s) -q|installed) # HELPCMD: check presence of package(s)
epm_cmd=query epm_cmd=query
;; ;;
...@@ -2488,6 +2802,12 @@ check_command() ...@@ -2488,6 +2802,12 @@ check_command()
requires|deplist) # HELPCMD: print package requires requires|deplist) # HELPCMD: print package requires
epm_cmd=requires epm_cmd=requires
;; ;;
provides) # HELPCMD: print package provides
epm_cmd=provides
;;
whatdepends) # HELPCMD: print packages dependences on that
epm_cmd=whatdepends
;;
-qa|list|packages|-l) # HELPCMD: list of installed package(s) -qa|list|packages|-l) # HELPCMD: list of installed package(s)
epm_cmd=packages epm_cmd=packages
;; ;;
......
...@@ -124,6 +124,18 @@ sudocmd() ...@@ -124,6 +124,18 @@ sudocmd()
$SUDO "$@" $SUDO "$@"
} }
sudocmd_foreach()
{
local cmd
cmd="$1"
#showcmd "$@"
shift
for pkg in "$@" ; do
sudocmd $cmd $pkg
done
}
filter_strip_spaces() filter_strip_spaces()
{ {
# possible use just # possible use just
...@@ -150,6 +162,13 @@ fatal() ...@@ -150,6 +162,13 @@ fatal()
exit 1 exit 1
} }
warning()
{
if [ -z "$TEXTDOMAIN" ] ; then
echo "Warning: $@" >&2
fi
}
set_sudo() set_sudo()
{ {
SUDO="" SUDO=""
...@@ -235,7 +254,7 @@ case $DISTRNAME in ...@@ -235,7 +254,7 @@ case $DISTRNAME in
CMD="ipkg" CMD="ipkg"
;; ;;
*) *)
fatal "Do not known DISTRNAME $DISTRNAME" fatal "Have no suitable DISTRNAME $DISTRNAME"
;; ;;
esac esac
PMTYPE=$CMD PMTYPE=$CMD
...@@ -259,7 +278,7 @@ serv_common() ...@@ -259,7 +278,7 @@ serv_common()
sudocmd systemctl "$@" $SERVICE sudocmd systemctl "$@" $SERVICE
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
...@@ -284,7 +303,7 @@ serv_disable() ...@@ -284,7 +303,7 @@ serv_disable()
sudocmd systemctl disable $1 sudocmd systemctl disable $1
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -308,7 +327,7 @@ serv_enable() ...@@ -308,7 +327,7 @@ serv_enable()
sudocmd systemctl enable $1 sudocmd systemctl enable $1
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
...@@ -326,13 +345,13 @@ serv_list() ...@@ -326,13 +345,13 @@ serv_list()
sudocmd service --status-all sudocmd service --status-all
;; ;;
systemd) systemd)
sudocmd systemctl list-units sudocmd systemctl list-units $@
;; ;;
*) *)
load_helper serv-list_all load_helper serv-list_all
load_helper serv-status load_helper serv-status
for i in $(serv_list_all) ; do for i in $(serv_list_all) ; do
is_service_running $i && echo $i is_service_running $i >/dev/null && echo $i
done done
;; ;;
esac esac
...@@ -351,10 +370,10 @@ serv_list_all() ...@@ -351,10 +370,10 @@ serv_list_all()
sudocmd ls -1 /etc/init.d/* | sed -e "s|/etc/init.d/||g" | grep -v README sudocmd ls -1 /etc/init.d/* | sed -e "s|/etc/init.d/||g" | grep -v README
;; ;;
systemd) systemd)
sudocmd systemctl list-unit-files sudocmd systemctl list-unit-files $@
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -365,8 +384,13 @@ serv_list_startup() ...@@ -365,8 +384,13 @@ serv_list_startup()
{ {
case $SERVICETYPE in case $SERVICETYPE in
*) *)
fatal "Do not known command for $SERVICETYPE" load_helper serv-list_all
load_helper serv-status
for i in $(serv_list_all | cut -f 1 -d" " | grep "\.service$") ; do
is_service_autostart >/dev/null $i && echo $i
done
;; ;;
esac esac
} }
...@@ -388,7 +412,7 @@ serv_start() ...@@ -388,7 +412,7 @@ serv_start()
sudocmd systemctl start "$SERVICE" "$@" sudocmd systemctl start "$SERVICE" "$@"
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -405,11 +429,10 @@ is_service_running() ...@@ -405,11 +429,10 @@ is_service_running()
$SUDO /etc/init.d/$1 status >/dev/null $SUDO /etc/init.d/$1 status >/dev/null
;; ;;
systemd) systemd)
#sudocmd systemctl is-enabled $1 $SUDO systemctl status $1 >/dev/null
fatal "FIXME: don't know how detect current startup state"
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -424,17 +447,17 @@ is_service_autostart() ...@@ -424,17 +447,17 @@ is_service_autostart()
fatal "FIXME: don't know how detect current startup state" fatal "FIXME: don't know how detect current startup state"
;; ;;
systemd) systemd)
sudocmd systemctl is-enabled $1.service $SUDO systemctl is-enabled $1
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
serv_status() serv_status()
{ {
is_service_autostart $1 && echo "Service $1 is sheduled to run on startup" || echo "Service $1 will NOT run on startup" is_service_autostart $1 && echo "Service $1 is scheduled to run on startup" || echo "Service $1 will NOT run on startup"
local SERVICE="$1" local SERVICE="$1"
shift shift
...@@ -447,10 +470,10 @@ serv_status() ...@@ -447,10 +470,10 @@ serv_status()
sudocmd /etc/init.d/$SERVICE status "$@" sudocmd /etc/init.d/$SERVICE status "$@"
;; ;;
systemd) systemd)
sudocmd systemctl status $SERVICE.service "$@" sudocmd systemctl status $SERVICE "$@"
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -473,7 +496,7 @@ serv_stop() ...@@ -473,7 +496,7 @@ serv_stop()
sudocmd systemctl stop $SERVICE "$@" sudocmd systemctl stop $SERVICE "$@"
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -499,7 +522,7 @@ serv_try_restart() ...@@ -499,7 +522,7 @@ serv_try_restart()
sudocmd systemctl try-restart $SERVICE "$@" sudocmd systemctl try-restart $SERVICE "$@"
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
} }
...@@ -529,7 +552,7 @@ serv_usage() ...@@ -529,7 +552,7 @@ serv_usage()
sudocmd systemctl $SERVICE 2>&1 sudocmd systemctl $SERVICE 2>&1
;; ;;
*) *)
fatal "Do not known command for $SERVICETYPE" fatal "Have no suitable command for $SERVICETYPE"
;; ;;
esac esac
...@@ -644,7 +667,9 @@ if distro altlinux-release ; then ...@@ -644,7 +667,9 @@ if distro altlinux-release ; then
elif distro gentoo-release ; then elif distro gentoo-release ; then
DISTRIB_ID="Gentoo" DISTRIB_ID="Gentoo"
DISTRIB_RELEASE=`basename $(readlink $ROOTDIR/etc/make.profile)` MAKEPROFILE=$(readlink $ROOTDIR/etc/portage/make.profile 2>/dev/null) || MAKEPROFILE=$(readlink $ROOTDIR/etc/make.profile)
DISTRIB_RELEASE=`basename $MAKEPROFILE`
echo $DISTRIB_RELEASE | grep -q "[0-9]" || DISTRIB_RELEASE=`basename $(dirname $MAKEPROFILE)`
# Slackware based # Slackware based
elif distro mopslinux-version ; then elif distro mopslinux-version ; then
...@@ -890,7 +915,7 @@ case $DISTRNAME in ...@@ -890,7 +915,7 @@ case $DISTRNAME in
# CMD="chocolatey" # CMD="chocolatey"
# ;; # ;;
*) *)
fatal "Do not known DISTRNAME $DISTRNAME yet" fatal "Have no suitable DISTRNAME $DISTRNAME yet"
;; ;;
esac esac
...@@ -920,7 +945,7 @@ $(get_help HELPOPT) ...@@ -920,7 +945,7 @@ $(get_help HELPOPT)
print_version() print_version()
{ {
echo "Service manager version 1.2.2" echo "Service manager version 1.2.7"
echo "Running on $($DISTRVENDOR)" echo "Running on $($DISTRVENDOR)"
echo "Copyright (c) Etersoft 2012, 2013" echo "Copyright (c) Etersoft 2012, 2013"
echo "This program may be freely redistributed under the terms of the GNU AGPLv3." echo "This program may be freely redistributed under the terms of the GNU AGPLv3."
...@@ -940,7 +965,7 @@ show_command_only= ...@@ -940,7 +965,7 @@ show_command_only=
serv_cmd= serv_cmd=
service_name= service_name=
params= params=
withoutservicename=
check_command() check_command()
{ {
...@@ -953,6 +978,7 @@ check_command() ...@@ -953,6 +978,7 @@ check_command()
;; ;;
usage) # HELPCMD: print out usage of the service usage) # HELPCMD: print out usage of the service
serv_cmd=usage serv_cmd=usage
withoutservicename=1
;; ;;
#restart) # HELPCMD: restart service #restart) # HELPCMD: restart service
#reload) # HELPCMD: reload service #reload) # HELPCMD: reload service
...@@ -967,12 +993,15 @@ check_command() ...@@ -967,12 +993,15 @@ check_command()
;; ;;
list) # HELPCMD: list running services list) # HELPCMD: list running services
serv_cmd=list serv_cmd=list
withoutservicename=1
;; ;;
list-all) # HELPCMD: list all available services list-all) # HELPCMD: list all available services
serv_cmd=list_all serv_cmd=list_all
withoutservicename=1
;; ;;
list-startup) # HELPCMD: list all services to run on startup list-startup) # HELPCMD: list all services to run on startup
serv_cmd=list_startup serv_cmd=list_startup
withoutservicename=1
;; ;;
on|enable) # HELPCMD: add service to run on startup and start it now on|enable) # HELPCMD: add service to run on startup and start it now
serv_cmd=enable serv_cmd=enable
...@@ -1028,7 +1057,7 @@ echover "service: $service_name" ...@@ -1028,7 +1057,7 @@ echover "service: $service_name"
echover "command: $serv_cmd" echover "command: $serv_cmd"
# Just printout help if run without args # Just printout help if run without args
if [ "$serv_cmd" != "list" ] && [ "$serv_cmd" != "list_all" ] && [ -z "$service_name" ] ; then if [ -z "$withoutservicename" ] && [ -z "$service_name" ] ; then
print_version print_version
echo echo
fatal "Run $ $progname --help for get help" fatal "Run $ $progname --help for get help"
......
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