Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eepm
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
eepm
Commits
de7d3d65
Commit
de7d3d65
authored
Aug 24, 2016
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit packed files
parent
5806fcb7
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
257 additions
and
80 deletions
+257
-80
epm.sh
packed/epm.sh
+193
-62
serv.sh
packed/serv.sh
+64
-18
No files found.
packed/epm.sh
View file @
de7d3d65
#!/bin/sh
#
# Copyright (C) 2012-201
4
Etersoft
# Copyright (C) 2012-201
4
Vitaly Lipatov <lav@etersoft.ru>
# Copyright (C) 2012-201
6
Etersoft
# Copyright (C) 2012-201
6
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
...
...
@@ -17,10 +17,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
PROGDIR
=
$(
dirname
$0
)
PROGDIR
=
$(
dirname
"
$0
"
)
PROGNAME
=
$(
basename
"
$0
"
)
[
"
$PROGDIR
"
=
"."
]
&&
PROGDIR
=
$(
pwd
)
if
[
"
$0
"
=
"/dev/stdin"
]
||
[
"
$0
"
=
"sh"
]
;
then
PROGDIR
=
""
PROGNAME
=
""
fi
# will replaced to /usr/share/eepm during install
...
...
@@ -209,6 +211,12 @@ store_output()
#return $PIPESTATUS
}
showcmd_store_output
()
{
showcmd
"
$@
"
store_output
"
$@
"
}
clean_store_output
()
{
rm
-f
$RC_STDOUT
$RC_STDOUT
.pipestatus
...
...
@@ -216,7 +224,8 @@ clean_store_output()
epm
()
{
$PROGDIR
/epm
$@
[
-n
"
$PROGNAME
"
]
||
fatal
"Can't use epm call from the piped script"
$PROGDIR
/
$PROGNAME
$@
}
fatal
()
...
...
@@ -479,6 +488,9 @@ case $DISTRNAME in
TinyCoreLinux
)
CMD
=
"tce"
;;
VoidLinux
)
CMD
=
"xbps"
;;
*
)
fatal
"Have no suitable DISTRNAME
$DISTRNAME
"
;;
...
...
@@ -503,26 +515,27 @@ is_active_systemd()
epm_addrepo
()
{
local
repo
=
"
$(
eval echo
$quoted_args
)
"
case
$PMTYPE
in
apt-rpm
)
assure_exists apt-repo
sudocmd apt-repo add
"
$
pkg_filenames
"
sudocmd apt-repo add
"
$
repo
"
;;
apt-dpkg|aptitude-dpkg
)
info
"You need manually add repo to /etc/apt/sources.list"
;;
yum-rpm
)
assure_exists yum-utils
sudocmd yum-config-manager
--add-repo
"
$
pkg_filenames
"
sudocmd yum-config-manager
--add-repo
"
$
repo
"
;;
urpm-rpm
)
sudocmd urpmi.addmedia
"
$
pkg_filenames
"
sudocmd urpmi.addmedia
"
$
repo
"
;;
zypper-rpm
)
sudocmd zypper ar
"
$
pkg_filenames
"
sudocmd zypper ar
"
$
repo
"
;;
emerge
)
sudocmd layman
-a
$"pkg_filenames
"
sudocmd layman
-a
"
$repo
"
;;
pacman
)
info
"You need manually add repo to /etc/pacman.conf"
...
...
@@ -530,7 +543,7 @@ case $PMTYPE in
#sudocmd repo-add $pkg_filenames
;;
npackd
)
sudocmd npackdcl add-repo
--url
=
"
$
pkg_filenames
"
sudocmd npackdcl add-repo
--url
=
"
$
repo
"
;;
slackpkg
)
info
"You need manually add repo to /etc/slackpkg/mirrors"
...
...
@@ -735,6 +748,9 @@ case $PMTYPE in
local
PKGLIST
=
$(
zypper packages
--orphaned
|
tail
-n
+5 |
cut
-d
\|
-f
3 |
sort
-u
)
sudocmd zypper remove
--clean-deps
$PKGLIST
;;
xbps
)
CMD
=
"xbps-remove -o"
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
;;
...
...
@@ -852,6 +868,9 @@ case $PMTYPE in
local
PKGLIST
=
$(
zypper packages
--unneeded
|
tail
-n
+5 |
cut
-d
\|
-f
3 |
sort
-u
)
sudocmd zypper remove
--clean-deps
$PKGLIST
;;
xbps
)
CMD
=
"xbps-remove -O"
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
;;
...
...
@@ -1240,6 +1259,9 @@ case $PMTYPE in
pkgng
)
sudocmd pkg clean
-a
;;
xbps
)
sudocmd xbps-remove
-O
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
;;
...
...
@@ -1566,6 +1588,9 @@ __epm_filelist_name()
pkgng
)
CMD
=
"pkg info -l"
;;
xbps
)
CMD
=
"xbps-query -f"
;;
aptcyg
)
docmd apt-cyg listfiles
$@
|
sed
-e
"s|^|/|g"
return
...
...
@@ -1682,6 +1707,9 @@ case $PMTYPE in
pkgng
)
docmd pkg info
$pkg_names
;;
xbps
)
docmd xbps-query
--show
$pkg_names
;;
homebrew
)
docmd brew info
$pkg_names
;;
...
...
@@ -1842,6 +1870,9 @@ epm_install_names()
aptcyg
)
sudocmd apt-cyg
install
$@
return
;;
xbps
)
sudocmd xbps-install
$@
return
;;
*
)
fatal
"Have no suitable install command for
$PMTYPE
"
;;
...
...
@@ -1906,6 +1937,9 @@ epm_ni_install_names()
tce
)
sudocmd tce-load
-wi
$@
return
;;
xbps
)
sudocmd xbps-install
-y
$@
return
;;
#android)
# sudocmd pm install $@
# return ;;
...
...
@@ -1941,8 +1975,11 @@ __epm_check_if_try_install_deb()
local
TDIR
=
$(
mktemp
-d
)
cd
$TDIR
for
pkg
in
$debpkgs
;
do
showcmd alien
-r
-k
--scripts
"
$pkg
"
# TODO: need check for return status
# TODO: fakeroot for non ALT?
showcmd_store_output alien
-r
-k
--scripts
"
$pkg
"
||
fatal
local
RPMCONVERTED
=
$(
grep
"rpm generated"
$RC_STDOUT
|
sed
-e
"s| generated||g"
)
clean_store_output
epm
install
$RPMCONVERTED
done
rm
-f
$TDIR
/
*
rmdir
$TDIR
/
...
...
@@ -1962,12 +1999,16 @@ __epm_check_if_try_install_rpm()
[
-n
"
$rpmpkgs
"
]
||
return
1
assure_exists alien
assure_exists fakeroot
local
TDIR
=
$(
mktemp
-d
)
cd
$TDIR
for
pkg
in
$rpmpkgs
;
do
showcmd alien
-d
-k
--scripts
"
$pkg
"
# TODO: need check for return status
showcmd_store_output fakeroot alien
-d
-k
--scripts
"
$pkg
"
clean_store_output
local
DEBCONVERTED
=
$(
grep
"deb generated"
$RC_STDOUT
|
sed
-e
"s| generated||g"
)
clean_store_output
epm
install
$DEBCONVERTED
done
rm
-f
$TDIR
/
*
rmdir
$TDIR
/
...
...
@@ -1992,7 +2033,7 @@ epm_install_files()
if
!
is_dirpath
"
$@
"
||
[
"
$(
get_package_type
"
$@
"
)
"
=
"rpm"
]
;
then
sudocmd rpm
-Uvh
$force
$nodeps
$@
&&
return
local
RES
=
$?
# TODO: check rpm result code and convert it to compatible format if possible
__epm_check_if_rpm_already_installed
$@
&&
return
# if run with --nodeps, do not fallback on hi level
...
...
@@ -2143,6 +2184,10 @@ epm_print_install_command()
tce
)
echo
"tce-load -wi
$@
"
;;
xbps
)
echo
"xbps-install -y
$@
"
;;
*
)
fatal
"Have no suitable appropriate install command for
$PMTYPE
"
;;
...
...
@@ -2165,14 +2210,8 @@ download_pkg_urls()
done
}
__handle_pkg_urls
()
__use_url_install
()
{
[
-n
"
$pkg_urls
"
]
||
return
# TODO: do it correcly
to_remove_pkg_files
=
case
$PMTYPE
in
apt-rpm
)
# ALT Linux really?
...
...
@@ -2194,10 +2233,23 @@ __handle_pkg_urls()
# pkg_names="$pkg_names $pkg_urls"
# ;;
*
)
# use workaround with eget: download and put in pkg_files
download_pkg_urls
return
1
;;
esac
return
0
}
__handle_pkg_urls
()
{
[
-n
"
$pkg_urls
"
]
||
return
# TODO: do it correctly
to_remove_pkg_files
=
if
[
"
$(
get_package_type
"
$pkg
"
)
"
!=
$PKGFORMAT
]
||
!
__use_url_install
;
then
# use workaround with eget: download and put in pkg_files
download_pkg_urls
fi
pkg_urls
=
}
...
...
@@ -2413,6 +2465,11 @@ __aptcyg_print_full()
echo
"
$1
-
$VERSION
"
}
__fo_pfn
()
{
grep
-v
"^$"
|
grep
--
"
$pkg_filenames
"
}
epm_packages
()
{
local
CMD
...
...
@@ -2420,23 +2477,28 @@ epm_packages()
case
$PMTYPE
in
apt-rpm
)
# FIXME: strong equal
CMD
=
"rpm -qa
$pkg_filenames
"
[
-n
"
$short
"
]
&&
CMD
=
"rpm -qa --queryformat %{name}
\n
$pkg_filenames
"
;;
docmd
$CMD
return
;;
*
-dpkg
)
# FIXME: strong equal
#CMD="dpkg -l $pkg_filenames"
CMD
=
"dpkg-query -W --showformat=
\$
{db:Status-Abbrev}
\$
{Package}-
\$
{Version}
\n
$pkg_filenames
"
[
-n
"
$short
"
]
&&
CMD
=
"dpkg-query -W --showformat=
\$
{db:Status-Abbrev}
\$
{Package}
\n
$pkg_filenames
"
docmd
$CMD
|
grep
"^i"
|
sed
-e
"s|.* ||g"
retur
n
;;
showcmd
$CMD
$CMD
|
grep
"^i"
|
sed
-e
"s|.* ||g"
| __fo_pf
n
return
;;
snappy
)
CMD
=
"snappy info"
;;
yum-rpm|urpm-rpm|zypper-rpm|dnf-rpm
)
# FIXME: strong equal
CMD
=
"rpm -qa
$pkg_filenames
"
[
-n
"
$short
"
]
&&
CMD
=
"rpm -qa --queryformat %{name}
\n
$pkg_filenames
"
;;
docmd
$CMD
return
;;
emerge
)
CMD
=
"qlist -I -C"
# print with colors for console output
...
...
@@ -2444,26 +2506,27 @@ case $PMTYPE in
;;
pkgsrc
)
CMD
=
"pkg_info"
docmd
$CMD
|
sed
-e
"s| .*||g"
retur
n
;;
showcmd
$CMD
$CMD
|
sed
-e
"s| .*||g"
| __fo_pf
n
return
;;
pkgng
)
if
[
-n
"
$pkg_filenames
"
]
;
then
CMD
=
"pkg info -E
$pkg_filenames
"
else
CMD
=
"pkg info"
fi
showcmd
$CMD
if
[
-n
"
$short
"
]
;
then
docmd
$CMD
|
sed
-e
"s| .*||g"
|
sed
-e
"s|-[0-9].*||g"
$CMD
|
sed
-e
"s| .*||g"
|
sed
-e
"s|-[0-9].*||g"
| __fo_pfn
else
docmd
$CMD
|
sed
-e
"s| .*||g"
$CMD
|
sed
-e
"s| .*||g"
| __fo_pfn
fi
return
;;
return
;;
pacman
)
CMD
=
"pacman -Qs
$pkg_filenames
"
showcmd
$CMD
if
[
-n
"
$short
"
]
;
then
docmd
$CMD
|
sed
-e
"s| .*||g"
-e
"s|.*/||g"
|
grep
-v
"^$"
$CMD
|
sed
-e
"s| .*||g"
-e
"s|.*/||g"
| __fo_pfn
return
fi
;;
...
...
@@ -2483,7 +2546,7 @@ case $PMTYPE in
# FIXME: does not work for libjpeg-v8a
# TODO: remove last 3 elements (if arch is second from the last?)
# FIXME this hack
docmd
ls
-1
/var/log/packages/ |
sed
-e
"s|-[0-9].*||g"
|
sed
-e
"s|libjpeg-v8a.*|libjpeg|g"
docmd
ls
-1
/var/log/packages/ |
sed
-e
"s|-[0-9].*||g"
|
sed
-e
"s|libjpeg-v8a.*|libjpeg|g"
| __fo_pfn
return
fi
;;
...
...
@@ -2502,9 +2565,20 @@ case $PMTYPE in
guix
)
CMD
=
"guix package -I"
;;
xbps
)
CMD
=
"xbps-query -l"
showcmd
$CMD
if
[
-n
"
$short
"
]
;
then
$CMD
|
sed
-e
"s|^ii ||g"
-e
"s| .*||g"
-e
"s|
\(
.*
\)
-.*|
\1
|g"
| __fo_pfn
else
$CMD
|
sed
-e
"s|^ii ||g"
-e
"s| .*||g"
| __fo_pfn
fi
return
0
;;
android
)
CMD
=
"pm list packages"
docmd
$CMD
|
sed
-e
"s|^package:||g"
showcmd
$CMD
$CMD
|
sed
-e
"s|^package:||g"
| __fo_pfn
return
;;
aptcyg
)
...
...
@@ -2523,7 +2597,7 @@ case $PMTYPE in
;;
esac
docmd
$CMD
docmd
$CMD
| __fopfn
}
...
...
@@ -2875,16 +2949,18 @@ _get_grep_exp()
_shortquery_via_packages_list
()
{
local
res
=
0
local
res
=
1
local
grepexp
local
firstpkg
=
$1
shift
grepexp
=
$(
_get_grep_exp
$firstpkg
)
# TODO: we miss status due grep
# Note: double call due stderr redirect
# Note: we use short=1 here due grep by ^name$
# separate first line for print out command
short
=
1
pkg_filenames
=
$firstpkg
epm_packages |
grep
--
"
$grepexp
"
||
res
=
1
short
=
1
pkg_filenames
=
$firstpkg
epm_packages |
grep
--
"
$grepexp
"
&&
res
=
0
||
res
=
1
local
pkg
for
pkg
in
"
$@
"
;
do
...
...
@@ -2897,16 +2973,19 @@ _shortquery_via_packages_list()
_query_via_packages_list
()
{
local
res
=
0
local
res
=
1
local
grepexp
local
firstpkg
=
$1
shift
grepexp
=
$(
_get_grep_exp
$firstpkg
)
# TODO: we miss status due grep
# TODO: grep correctly
# Note: double call due stderr redirect
# Note: we use short=1 here due grep by ^name$
# separate first line for print out command
short
=
1
pkg_filenames
=
$firstpkg
epm_packages |
grep
-q
--
"
$grepexp
"
&&
quiet
=
1
pkg_filenames
=
$firstpkg
epm_packages
||
res
=
1
short
=
1
pkg_filenames
=
$firstpkg
epm_packages |
grep
-q
--
"
$grepexp
"
&&
quiet
=
1
pkg_filenames
=
$firstpkg
epm_packages
&&
res
=
0
||
res
=
1
local
pkg
for
pkg
in
"
$@
"
;
do
...
...
@@ -3188,6 +3267,10 @@ __do_query()
ipkg
)
CMD
=
"ipkg files"
;;
xbps
)
# FIXME: maybe it is search file?
CMD
=
"xbps-query -o"
;;
aptcyg
)
#CMD="apt-cyg packageof"
# do not realized locally
...
...
@@ -3389,7 +3472,7 @@ __replace_alt_version_in_repo()
#echo "Upgrading $DISTRNAME from $1 to $2 ..."
docmd apt-repo list |
sed
-e
"s|
\(
$1
\)
|{
\1
}->{
$2
}|g"
| egrep
--color
--
"
$1
"
# ask and replace only we will have changes
if
apt-repo list | egrep
-q
--
"
$1
"
;
then
if
a
=
a
pt-repo list | egrep
-q
--
"
$1
"
;
then
confirm
"Are these correct changes? [y/N]"
||
fatal
"Exiting"
__replace_text_in_alt_repo
"/^ *#/! s!
$1
!
$2
!g"
fi
...
...
@@ -3706,6 +3789,9 @@ epm_remove_names()
aptcyg
)
sudocmd apt-cyg remove
$@
return
;;
xbps
)
sudocmd xbps remove
-R
$@
return
;;
ipkg
)
sudocmd ipkg
$(
subst_option force
-force-depends
)
remove
$@
return
;;
...
...
@@ -3748,6 +3834,9 @@ epm_remove_nonint()
ipkg
)
sudocmd ipkg
-force-defaults
remove
$@
return
;;
xbps
)
sudocmd xbps remove
-y
$@
return
;;
esac
return
5
}
...
...
@@ -3782,6 +3871,9 @@ epm_print_remove_command()
aptcyg
)
echo
"apt-cyg remove
$@
"
;;
xbps
)
echo
"xbps remove -y
$@
"
;;
*
)
fatal
"Have no suitable appropriate remove command for
$PMTYPE
"
;;
...
...
@@ -3851,6 +3943,9 @@ epm_remove_old_kernels()
Gentoo
)
sudocmd emerge
-P
gentoo-sources
return
;;
VoidLinux
)
sudocmd vkpurge
rm
all
return
;;
esac
case
$PMTYPE
in
...
...
@@ -3864,32 +3959,33 @@ epm_remove_old_kernels()
epm_removerepo
()
{
local
repo
=
"
$(
eval echo
$quoted_args
)
"
case
$PMTYPE
in
apt-rpm
)
assure_exists apt-repo
sudocmd apt-repo
rm
"
$
quoted_args
"
sudocmd apt-repo
rm
"
$
repo
"
;;
apt-dpkg|aptitude-dpkg
)
info
"You need remove repo from /etc/apt/sources.list"
;;
yum-rpm
)
assure_exists yum-utils
sudocmd yum-config-manager
--disable
"
$
pkg_filenames
"
sudocmd yum-config-manager
--disable
"
$
repo
"
;;
urpm-rpm
)
sudocmd urpmi.removemedia
"
$
pkg_filenames
"
sudocmd urpmi.removemedia
"
$
repo
"
;;
zypper-rpm
)
sudocmd zypper removerepo
"
$
pkg_filenames
"
sudocmd zypper removerepo
"
$
repo
"
;;
emerge
)
sudocmd layman
"-d
$
pkg_filenames
"
sudocmd layman
"-d
$
repo
"
;;
pacman
)
info
"You need remove repo from /etc/pacman.conf"
;;
npackd
)
sudocmd npackdcl remove-repo
--url
=
"
$
pkg_filenames
"
sudocmd npackdcl remove-repo
--url
=
"
$
repo
"
;;
slackpkg
)
info
"You need remove repo from /etc/slackpkg/mirrors"
...
...
@@ -3969,14 +4065,18 @@ case $PMTYPE in
__fix_apt_sources_list /etc/apt/sources.list
__fix_apt_sources_list /etc/apt/sources.list.d/
*
.list
docmd apt-repo list
# FIXME: what the best place?
# rebuild rpm database
#sudocmd rm -fv /var/lib/rpm/__db*
#sudocmd rpm --rebuilddb
;;
yum-rpm|dnf-rpm
)
sudocmd
rm
-fv
/var/lib/rpm/__db
*
sudocmd rpm
--rebuilddb
# FIXME: what the best place?
#sudocmd rm -fv /var/lib/rpm/__db*
#sudocmd rpm --rebuilddb
;;
xbps
)
sudocmd xbps-pkgdb
-a
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
...
...
@@ -4028,6 +4128,9 @@ case $PMTYPE in
docmd eselect profile list
docmd layman
-L
;;
xbps
)
docmd xbps-query
-L
;;
pacman
)
docmd
grep
-v
--
"^#
\|
^$"
/etc/pacman.conf
;;
...
...
@@ -4128,6 +4231,9 @@ case $PMTYPE in
#CMD="pkg rquery '%dn-%dv'"
CMD
=
"pkg info -d"
;;
xbps
)
CMD
=
"xbps-query -x"
;;
aptcyg
)
#CMD="apt-cyg depends"
# print show version
...
...
@@ -4232,6 +4338,9 @@ case $PMTYPE in
aptcyg
)
CMD
=
"apt-cyg searchall"
;;
xbps
)
CMD
=
"xbps-query -s"
;;
*
)
fatal
"Have no suitable search command for
$PMTYPE
"
;;
...
...
@@ -4369,6 +4478,9 @@ case $PMTYPE in
ipkg
)
CMD
=
"ipkg search"
;;
xbps
)
CMD
=
"xbps-query -Ro"
;;
aptcyg
)
docmd apt-cyg searchall
$(
echo
"
$pkg_filenames
"
|
sed
-e
"s| /| |g"
)
return
...
...
@@ -4716,6 +4828,9 @@ case $PMTYPE in
aptcyg
)
sudocmd apt-cyg update
;;
xbps
)
sudocmd xbps-install
-S
;;
*
)
fatal
"Have no suitable update command for
$PMTYPE
"
;;
...
...
@@ -4804,6 +4919,9 @@ epm_upgrade()
docmd_foreach
"epm install"
$(
short
=
1 epm packages
)
return
;;
xbps
)
CMD
=
"xbps-install -Su"
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
;;
...
...
@@ -4867,6 +4985,9 @@ case $PMTYPE in
aptcyg
)
CMD
=
"apt-cyg rdepends"
;;
xbps
)
CMD
=
"xbps-query -X"
;;
*
)
fatal
"Have no suitable command for
$PMTYPE
"
;;
...
...
@@ -4918,8 +5039,8 @@ docmd $CMD $pkg
internal_distr_info
()
{
# Author: Vitaly Lipatov <lav@etersoft.ru>
# 2007, 2009, 2010, 2012 (c) Etersoft
# 2007 Public domain
# 2007, 2009, 2010, 2012
, 2016
(c) Etersoft
# 2007
-2016
Public domain
# Detect the distro and version
# Welcome to send updates!
...
...
@@ -4950,6 +5071,7 @@ rpmvendor()
[
"
$DISTRIB_ID
"
=
"AstraLinux"
]
&&
echo
"astra"
&&
return
[
"
$DISTRIB_ID
"
=
"LinuxXP"
]
&&
echo
"lxp"
&&
return
[
"
$DISTRIB_ID
"
=
"TinyCoreLinux"
]
&&
echo
"tcl"
&&
return
[
"
$DISTRIB_ID
"
=
"VoidLinux"
]
&&
echo
"void"
&&
return
echo
"
$DISTRIB_ID
"
|
tr
"[A-Z]"
"[a-z]"
}
...
...
@@ -4973,6 +5095,7 @@ pkgtype()
android
)
echo
"apk"
;;
alpine
)
echo
"apk"
;;
tinycorelinux
)
echo
"tcz"
;;
voidlinux
)
echo
"xbps"
;;
cygwin
)
echo
"tar.xz"
;;
debian|ubuntu|mint|runtu|mcst|astra
)
echo
"deb"
;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles
)
...
...
@@ -5065,6 +5188,11 @@ elif distro os-release && which tce-ab 2>/dev/null >/dev/null ; then
DISTRIB_ID
=
"TinyCoreLinux"
DISTRIB_RELEASE
=
"
$VERSION_ID
"
elif
distro os-release
&&
which xbps-query 2>/dev/null
>
/dev/null
;
then
.
$ROOTDIR
/etc/os-release
DISTRIB_ID
=
"VoidLinux"
DISTRIB_RELEASE
=
"Live"
elif
distro arch-release
;
then
DISTRIB_ID
=
"ArchLinux"
DISTRIB_RELEASE
=
"2010"
...
...
@@ -5251,7 +5379,7 @@ case $1 in
exit
0
;;
-V
)
echo
"201
20519
"
echo
"201
60822
"
exit
0
;;
*
)
...
...
@@ -5379,7 +5507,7 @@ $(get_help HELPOPT)
print_version
()
{
echo
"EPM package manager version 1.9.
1
"
echo
"EPM package manager version 1.9.
3
"
echo
"Running on
$(
$DISTRVENDOR
)
('
$PMTYPE
' package manager uses '
$PKGFORMAT
' package format)"
echo
"Copyright (c) Etersoft 2012-2016"
echo
"This program may be freely redistributed under the terms of the GNU AGPLv3."
...
...
@@ -5407,9 +5535,7 @@ pkg_names=
pkg_urls
=
quoted_args
=
progname
=
"
${
0
##*/
}
"
case
$progname
in
case
$PROGNAME
in
epmi
)
epm_cmd
=
install
;;
...
...
@@ -5454,12 +5580,17 @@ case $progname in
;;
epm|upm|eepm
)
;;
epm.sh
)
;;
*
)
# epm by default
# fatal "Unknown command: $progname"
;;
esac
# was called with alias name
[
-n
"
$epm_cmd
"
]
&&
PROGNAME
=
"epm"
check_command
()
{
# do not override command
...
...
@@ -5715,7 +5846,7 @@ pkg_filenames=$(strip_spaces "$pkg_files $pkg_names")
if
[
-z
"
$epm_cmd
"
]
;
then
print_version
echo
fatal
"Run
$ $
progname
--help for get help"
fatal
"Run
$ $
PROGNAME
--help for get help"
fi
# Use eatmydata for write specific operations
...
...
packed/serv.sh
View file @
de7d3d65
...
...
@@ -204,6 +204,12 @@ store_output()
#return $PIPESTATUS
}
showcmd_store_output
()
{
showcmd
"
$@
"
store_output
"
$@
"
}
clean_store_output
()
{
rm
-f
$RC_STDOUT
$RC_STDOUT
.pipestatus
...
...
@@ -211,7 +217,8 @@ clean_store_output()
epm
()
{
$PROGDIR
/epm
$@
[
-n
"
$PROGNAME
"
]
||
fatal
"Can't use epm call from the piped script"
$PROGDIR
/
$PROGNAME
$@
}
fatal
()
...
...
@@ -474,6 +481,9 @@ case $DISTRNAME in
TinyCoreLinux
)
CMD
=
"tce"
;;
VoidLinux
)
CMD
=
"xbps"
;;
*
)
fatal
"Have no suitable DISTRNAME
$DISTRNAME
"
;;
...
...
@@ -518,6 +528,9 @@ serv_common()
sudocmd systemctl
"
$@
"
$SERVICE
fi
;;
runit
)
sudocmd sv
$SERVICE
"
$@
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -532,7 +545,7 @@ serv_disable()
local
SERVICE
=
"
$1
"
is_service_running
$1
&&
{
serv_stop
$1
||
return
;
}
is_service_autostart
$1
||
{
ech
o
"Service
$1
already disabled for startup"
&&
return
;
}
is_service_autostart
$1
||
{
inf
o
"Service
$1
already disabled for startup"
&&
return
;
}
case
$SERVICETYPE
in
service-chkconfig|service-upstart
)
...
...
@@ -548,6 +561,9 @@ serv_disable()
systemd
)
sudocmd systemctl disable
$1
;;
runit
)
sudocmd
rm
-fv
/var/service/
$SERVICE
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -561,7 +577,7 @@ __serv_enable()
{
local
SERVICE
=
"
$1
"
is_service_autostart
$1
&&
echo
"Service
$1
already enabled for startup"
&&
return
is_service_autostart
$1
&&
info
"Service
$1
is
already enabled for startup"
&&
return
case
$SERVICETYPE
in
service-chkconfig
)
...
...
@@ -582,6 +598,11 @@ __serv_enable()
systemd
)
sudocmd systemctl
enable
$1
;;
runit
)
epm assure
$SERVICE
[
-r
"/etc/sv/
$SERVICE
"
]
||
fatal
"Can't find /etc/sv/
$SERVICE
"
sudocmd
ln
-s
/etc/sv/
$SERVICE
/var/service/
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -593,7 +614,8 @@ serv_enable()
{
__serv_enable
"
$1
"
||
return
# start if need
is_service_running
$1
||
serv_start
$1
||
return
is_service_running
$1
&&
info
"Service
$1
is already running"
&&
return
serv_start
$1
}
# File bin/serv-list:
...
...
@@ -694,7 +716,8 @@ serv_reload()
sudocmd systemctl reload
$SERVICE
"
$@
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
info
"Fallback to restart..."
serv_restart
"
$SERVICE
"
"
$@
"
;;
esac
}
...
...
@@ -721,6 +744,9 @@ serv_restart()
systemd
)
sudocmd systemctl restart
$SERVICE
"
$@
"
;;
runit
)
sudocmd sv restart
"
$SERVICE
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -748,6 +774,9 @@ serv_start()
systemd
)
sudocmd systemctl start
"
$SERVICE
"
"
$@
"
;;
runit
)
sudocmd sv up
"
$SERVICE
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -774,6 +803,9 @@ is_service_running()
systemd
)
$SUDO
systemctl status
$1
>
/dev/null
;;
runit
)
$SUDO
sv status
"
$SERVICE
"
>
/dev/null
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -800,6 +832,9 @@ is_service_autostart()
systemd
)
$SUDO
systemctl is-enabled
$1
;;
runit
)
test
-L
/var/service/
$SERVICE
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -827,6 +862,9 @@ serv_status()
systemd
)
sudocmd systemctl status
$SERVICE
"
$@
"
;;
runit
)
sudocmd sv status
"
$SERVICE
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -854,6 +892,9 @@ serv_stop()
systemd
)
sudocmd systemctl stop
$SERVICE
"
$@
"
;;
runit
)
sudocmd sv down
"
$SERVICE
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
...
...
@@ -869,19 +910,13 @@ serv_try_restart()
shift
case
$SERVICETYPE
in
service-chkconfig|service-upstart
)
is_service_running
$SERVICE
||
return
0
docmd serv
$SERVICE
restart
"
$@
"
;;
service-initd|service-update
)
is_service_running
$SERVICE
||
return
0
sudocmd
$INITDIR
/
$SERVICE
restart
"
$@
"
;;
systemd
)
sudocmd systemctl try-restart
$SERVICE
"
$@
"
;;
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
info
"Fallback to restart..."
is_service_running
$SERVICE
||
{
info
"Service
$SERVICE
is not running, restart skipping…"
;
return
0
;
}
serv_restart
"
$SERVICE
"
"
$@
"
;;
esac
}
...
...
@@ -922,8 +957,8 @@ _print_additional_usage
internal_distr_info
()
{
# Author: Vitaly Lipatov <lav@etersoft.ru>
# 2007, 2009, 2010, 2012 (c) Etersoft
# 2007 Public domain
# 2007, 2009, 2010, 2012
, 2016
(c) Etersoft
# 2007
-2016
Public domain
# Detect the distro and version
# Welcome to send updates!
...
...
@@ -954,6 +989,7 @@ rpmvendor()
[
"
$DISTRIB_ID
"
=
"AstraLinux"
]
&&
echo
"astra"
&&
return
[
"
$DISTRIB_ID
"
=
"LinuxXP"
]
&&
echo
"lxp"
&&
return
[
"
$DISTRIB_ID
"
=
"TinyCoreLinux"
]
&&
echo
"tcl"
&&
return
[
"
$DISTRIB_ID
"
=
"VoidLinux"
]
&&
echo
"void"
&&
return
echo
"
$DISTRIB_ID
"
|
tr
"[A-Z]"
"[a-z]"
}
...
...
@@ -977,6 +1013,7 @@ pkgtype()
android
)
echo
"apk"
;;
alpine
)
echo
"apk"
;;
tinycorelinux
)
echo
"tcz"
;;
voidlinux
)
echo
"xbps"
;;
cygwin
)
echo
"tar.xz"
;;
debian|ubuntu|mint|runtu|mcst|astra
)
echo
"deb"
;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles
)
...
...
@@ -1069,6 +1106,11 @@ elif distro os-release && which tce-ab 2>/dev/null >/dev/null ; then
DISTRIB_ID
=
"TinyCoreLinux"
DISTRIB_RELEASE
=
"
$VERSION_ID
"
elif
distro os-release
&&
which xbps-query 2>/dev/null
>
/dev/null
;
then
.
$ROOTDIR
/etc/os-release
DISTRIB_ID
=
"VoidLinux"
DISTRIB_RELEASE
=
"Live"
elif
distro arch-release
;
then
DISTRIB_ID
=
"ArchLinux"
DISTRIB_RELEASE
=
"2010"
...
...
@@ -1255,7 +1297,7 @@ case $1 in
exit
0
;;
-V
)
echo
"201
20519
"
echo
"201
60822
"
exit
0
;;
*
)
...
...
@@ -1403,6 +1445,9 @@ case $DISTRNAME in
Fedora|LinuxXP|ASPLinux|CentOS|RHEL|Scientific
)
CMD
=
"service-chkconfig"
;;
VoidLinux
)
CMD
=
"runit"
;;
Slackware
)
CMD
=
"service-initd"
;;
...
...
@@ -1433,6 +1478,7 @@ ANYSERVICE=$(which anyservice 2>/dev/null)
is_anyservice
()
{
[
-n
"
$ANYSERVICE
"
]
||
return
[
-n
"
$1
"
]
||
return
# check if anyservice is exists and checkd returns true
$ANYSERVICE
"
$1
"
checkd 2>/dev/null
}
...
...
@@ -1452,7 +1498,7 @@ $(get_help HELPOPT)
print_version
()
{
echo
"Service manager version 1.9.
1
"
echo
"Service manager version 1.9.
3
"
echo
"Running on
$(
$DISTRVENDOR
)
"
echo
"Copyright (c) Etersoft 2012, 2013, 2016"
echo
"This program may be freely redistributed under the terms of the GNU AGPLv3."
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment