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
7df6bc8d
Commit
7df6bc8d
authored
Jan 31, 2020
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit packed files
parent
be7de514
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
153 additions
and
11 deletions
+153
-11
epm.sh
packed/epm.sh
+130
-9
serv.sh
packed/serv.sh
+23
-2
No files found.
packed/epm.sh
View file @
7df6bc8d
...
@@ -2742,6 +2742,14 @@ __handle_direct_install()
...
@@ -2742,6 +2742,14 @@ __handle_direct_install()
esac
esac
}
}
__epm_check_if_src_rpm
()
{
local
pkg
for
pkg
in
$@
;
do
echo
"
$pkg
"
|
grep
-q
"
\.
src.
\r
pm"
&&
fatal
"Installation of a source packages (like '
$pkg
') is not supported."
done
}
epm_install_files
()
epm_install_files
()
{
{
[
-z
"
$1
"
]
&&
return
[
-z
"
$1
"
]
&&
return
...
@@ -2754,6 +2762,7 @@ epm_install_files()
...
@@ -2754,6 +2762,7 @@ epm_install_files()
# TODO: replace with name changed function
# TODO: replace with name changed function
__epm_check_if_try_install_deb
$@
&&
return
__epm_check_if_try_install_deb
$@
&&
return
__epm_check_if_src_rpm
$@
# do not using low-level for install by file path (FIXME: reasons?)
# do not using low-level for install by file path (FIXME: reasons?)
if
!
is_dirpath
"
$@
"
||
[
"
$(
get_package_type
"
$@
"
)
"
=
"rpm"
]
;
then
if
!
is_dirpath
"
$@
"
||
[
"
$(
get_package_type
"
$@
"
)
"
=
"rpm"
]
;
then
...
@@ -2796,6 +2805,7 @@ epm_install_files()
...
@@ -2796,6 +2805,7 @@ epm_install_files()
*
-rpm
)
*
-rpm
)
__epm_check_if_try_install_deb
$@
&&
return
__epm_check_if_try_install_deb
$@
&&
return
__epm_check_if_src_rpm
$@
sudocmd rpm
-Uvh
$force
$nodeps
$@
&&
return
sudocmd rpm
-Uvh
$force
$nodeps
$@
&&
return
local
RES
=
$?
local
RES
=
$?
...
@@ -5023,8 +5033,7 @@ case $DISTRNAME in
...
@@ -5023,8 +5033,7 @@ case $DISTRNAME in
;;
;;
*
)
*
)
if
tasknumber
"
$repo
"
>
/dev/null
;
then
if
tasknumber
"
$repo
"
>
/dev/null
;
then
#sudocmd apt-repo rm all tasks
assure_exists apt-repo
#return
local
tn
local
tn
for
tn
in
$(
tasknumber
"
$repo
"
)
;
do
for
tn
in
$(
tasknumber
"
$repo
"
)
;
do
repoline
=
"
$(
epm repolist |
grep
" repo/
$tn
/"
| line
)
"
#"
repoline
=
"
$(
epm repolist |
grep
" repo/
$tn
/"
| line
)
"
#"
...
@@ -5258,7 +5267,7 @@ __epm_repack_rpm()
...
@@ -5258,7 +5267,7 @@ __epm_repack_rpm()
repacked_rpms
=
"
$repacked_rpms
$repacked_rpm
"
repacked_rpms
=
"
$repacked_rpms
$repacked_rpm
"
to_remove_pkg_files
=
"
$to_remove_pkg_files
$repacked_rpm
"
to_remove_pkg_files
=
"
$to_remove_pkg_files
$repacked_rpm
"
else
else
warning
"Can't find converted rpm for source binary
$pkg
package
"
warning
"Can't find converted rpm for source binary
package '
$pkg
'
"
fi
fi
cd
-
>
/dev/null
cd
-
>
/dev/null
rm
-rf
$tmpbuilddir
/
$subdir
/
rm
-rf
$tmpbuilddir
/
$subdir
/
...
@@ -5277,6 +5286,7 @@ epm_repack()
...
@@ -5277,6 +5286,7 @@ epm_repack()
__handle_pkg_urls_to_install
__handle_pkg_urls_to_install
fi
fi
[
-n
"
$pkg_names
"
]
&&
warning
"Can't find
$pkg_names
"
[
-z
"
$pkg_files
"
]
&&
info
"Skip empty repack list"
&&
return
22
[
-z
"
$pkg_files
"
]
&&
info
"Skip empty repack list"
&&
return
22
# TODO: если у нас rpm, а пакет - deb и наоборот
# TODO: если у нас rpm, а пакет - deb и наоборот
...
@@ -5284,13 +5294,19 @@ epm_repack()
...
@@ -5284,13 +5294,19 @@ epm_repack()
rpm
)
rpm
)
if
__epm_split_by_pkg_type deb
$pkg_files
;
then
if
__epm_split_by_pkg_type deb
$pkg_files
;
then
__epm_repack_deb_to_rpm
$split_replaced_pkgs
__epm_repack_deb_to_rpm
$split_replaced_pkgs
cp
-v
$repacked_rpms
.
echo
echo
"Adopted packages:"
estrlist list
$repacked_rpms
cp
$repacked_rpms
.
pkg_files
=
"
$(
estrlist exclude
$split_replaced_pkgs
$pkg_files
)
"
pkg_files
=
"
$(
estrlist exclude
$split_replaced_pkgs
$pkg_files
)
"
fi
fi
if
[
-n
"
$pkg_files
"
]
;
then
if
[
-n
"
$pkg_files
"
]
;
then
__epm_repack_rpm
$pkg_files
||
fatal
__epm_repack_rpm
$pkg_files
||
fatal
cp
-v
$repacked_rpms
.
echo
echo
"Adopted packages:"
estrlist list
$repacked_rpms
cp
$repacked_rpms
.
fi
fi
;;
;;
deb
)
deb
)
...
@@ -5298,6 +5314,7 @@ epm_repack()
...
@@ -5298,6 +5314,7 @@ epm_repack()
__epm_repack_rpm_to_deb
$split_replaced_pkgs
__epm_repack_rpm_to_deb
$split_replaced_pkgs
cp
-v
$repacked_debs
.
cp
-v
$repacked_debs
.
pkg_files
=
"
$(
estrlist exclude
$split_replaced_pkgs
$pkg_files
)
"
pkg_files
=
"
$(
estrlist exclude
$split_replaced_pkgs
$pkg_files
)
"
[
-n
"
$pkg_files
"
]
&&
warning
"There are left unconverted packages
$pkg_files
."
fi
fi
;;
;;
*
)
*
)
...
@@ -5309,8 +5326,8 @@ epm_repack()
...
@@ -5309,8 +5326,8 @@ epm_repack()
# TODO: move it to exit handler
# TODO: move it to exit handler
if
[
-z
"
$DEBUG
"
]
;
then
if
[
-z
"
$DEBUG
"
]
;
then
# TODO: reinvent
# TODO: reinvent
[
-n
"
$to_remove_pkg_files
"
]
&&
rm
-f
v
$to_remove_pkg_files
[
-n
"
$to_remove_pkg_files
"
]
&&
rm
-f
$to_remove_pkg_files
[
-n
"
$to_remove_pkg_files
"
]
&&
rmdir
-v
$(
dirname
$to_remove_pkg_files
|
head
-n1
)
2>/dev/null
[
-n
"
$to_remove_pkg_files
"
]
&&
rmdir
$(
dirname
$to_remove_pkg_files
|
head
-n1
)
2>/dev/null
fi
fi
}
}
...
@@ -5403,6 +5420,7 @@ esac
...
@@ -5403,6 +5420,7 @@ esac
# File bin/epm-repolist:
# File bin/epm-repolist:
print_apt_sources_list
()
print_apt_sources_list
()
{
{
local
i
local
i
...
@@ -5419,7 +5437,11 @@ epm_repolist()
...
@@ -5419,7 +5437,11 @@ epm_repolist()
case
$PMTYPE
in
case
$PMTYPE
in
apt-rpm
)
apt-rpm
)
assure_exists apt-repo
assure_exists apt-repo
if
tasknumber
"
$pkg_names
"
>
/dev/null
;
then
get_task_packages
$pkg_names
else
docmd apt-repo list
docmd apt-repo list
fi
;;
;;
deepsolver-rpm
)
deepsolver-rpm
)
docmd ds-conf
docmd ds-conf
...
@@ -5587,6 +5609,102 @@ epm_requires()
...
@@ -5587,6 +5609,102 @@ epm_requires()
epm_requires_names
$(
print_name
$pkg_names
)
epm_requires_names
$(
print_name
$pkg_names
)
}
}
# File bin/epm-restore:
__epm_filter_pip_to_rpm
()
{
tr
"A-Z"
"a-z"
|
sed
-e
"s|-|_|g"
-e
"s|^python_||"
\
-e
"s|beautifulsoup4|bs4|"
\
-e
"s|pillow|PIL|"
\
-e
"s|pyjwt|jwt|"
\
-e
"s|pyyaml|yaml|"
\
-e
"s|attrs|attr|"
\
-e
"s|memcached|memcache|"
\
-e
"s|pyopenssl|OpenSSL|"
}
__epm_restore_pip
()
{
local
req_file
=
"
$1
"
info
"Install requirements from
$req_file
..."
local
ilist
=
''
while
read
l
;
do
local
t
=
"
$(
echo
"
$l
"
|
sed
-e
"s| *[<>]*=.*||"
| __epm_filter_pip_to_rpm
)
"
if
echo
"
$l
"
|
grep
-qE
"^ *#"
||
[
-z
"
$l
"
]
;
then
continue
fi
if
echo
"
$l
"
|
grep
-qE
"://"
;
then
if
echo
"
$l
"
|
grep
-q
"#egg="
;
then
t
=
"
$(
echo
"
$l
"
|
sed
-e
"s|.*#egg=||"
-e
"s|
\[
.*||"
| __epm_filter_pip_to_rpm
)
"
else
echo
" skipping URL
$l
..."
continue
fi
fi
if
echo
"
$l
"
|
grep
-q
"; *python_version *< *'3.0'"
;
then
echo
"
$t
is python2 only requirement, skipped"
continue
fi
# TODO: python3-egg-info($t)
local
pi
=
"python3(
$t
)"
echo
"
$l
->
$t
->
$pi
"
[
-n
"
$t
"
]
||
continue
ilist
=
"
$ilist
$pi
"
done
<
$req_file
epm
install
$ilist
}
__epm_restore_by
()
{
local
req_file
=
"
$1
"
[
-s
"
$req_file
"
]
||
return
if
file
$req_file
|
grep
-q
"ELF [3264]*-bit LSB executable"
;
then
assure_exists ldd-requires
showcmd ldd-requires
$req_file
local
TOINSTALL
=
"
$(
a
=
ldd-requires
$req_file
|
grep
"^apt-get install"
|
sed
-e
"s|^apt-get install ||"
)
"
[
-n
"
$TOINSTALL
"
]
||
{
info
"There are no missed packages is found for
$req_file
binary."
;
return
;
}
epm
install
$TOINSTALL
return
fi
case
$(
basename
$req_file
)
in
requirements.txt
)
[
-s
"
$req_file
"
]
&&
__epm_restore_pip
"
$req_file
"
;;
Gemfile|package.json
)
info
"
$req_file
support is not implemented yet"
;;
esac
}
epm_restore
()
{
req_file
=
"
$pkg_filenames
"
if
[
-n
"
$pkg_urls
"
]
&&
echo
"
$pkg_urls
"
|
grep
-qE
"^https?://"
;
then
req_file
=
"
$(
basename
"
$pkg_urls
"
)
"
#assure eget
[
-r
"
$req_file
"
]
&&
fatal
"File
$req_file
is already exists in
$(
pwd
)
"
info
"Downloading '
$req_file
' from '
$pkg_urls
' ..."
eget
"
$pkg_urls
"
[
-s
"
$req_file
"
]
||
fatal
"Can't download
$req_file
from '
$pkg_urls
'"
fi
if
[
-n
"
$req_file
"
]
;
then
__epm_restore_by
$req_file
return
fi
# if run with empty args
for
i
in
requirements.txt Gemfile
;
do
__epm_restore_by
$i
done
}
# File bin/epm-search:
# File bin/epm-search:
...
@@ -7809,7 +7927,7 @@ $(get_help HELPOPT)
...
@@ -7809,7 +7927,7 @@ $(get_help HELPOPT)
print_version
()
print_version
()
{
{
echo
"EPM package manager version 3.1.
2
"
echo
"EPM package manager version 3.1.
3
"
echo
"Running on
$(
$DISTRVENDOR
-e
)
('
$PMTYPE
' package manager uses '
$PKGFORMAT
' package format)"
echo
"Running on
$(
$DISTRVENDOR
-e
)
('
$PMTYPE
' package manager uses '
$PKGFORMAT
' package format)"
echo
"Copyright (c) Etersoft 2012-2019"
echo
"Copyright (c) Etersoft 2012-2019"
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."
...
@@ -7819,7 +7937,7 @@ print_version()
...
@@ -7819,7 +7937,7 @@ print_version()
Usage
=
"Usage: epm [options] <command> [package name(s), package files]..."
Usage
=
"Usage: epm [options] <command> [package name(s), package files]..."
Descr
=
"epm - EPM package manager"
Descr
=
"epm - EPM package manager"
EPMVERSION
=
3.1.
2
EPMVERSION
=
3.1.
3
verbose
=
verbose
=
quiet
=
quiet
=
nodeps
=
nodeps
=
...
@@ -8014,6 +8132,9 @@ check_command()
...
@@ -8014,6 +8132,9 @@ check_command()
clean
)
# HELPCMD: clean local package cache
clean
)
# HELPCMD: clean local package cache
epm_cmd
=
clean
epm_cmd
=
clean
;;
;;
restore
)
# HELPCMD: install (restore) packages need for the project (f.i. by requirements.txt)
epm_cmd
=
restore
;;
autoremove|package-cleanup
)
# HELPCMD: auto remove unneeded package(s) Supports args for ALT: [libs|python|perl|libs-devel]
autoremove|package-cleanup
)
# HELPCMD: auto remove unneeded package(s) Supports args for ALT: [libs|python|perl|libs-devel]
epm_cmd
=
autoremove
epm_cmd
=
autoremove
;;
;;
...
...
packed/serv.sh
View file @
7df6bc8d
...
@@ -606,6 +606,9 @@ serv_disable()
...
@@ -606,6 +606,9 @@ serv_disable()
systemd
)
systemd
)
sudocmd systemctl disable
$1
sudocmd systemctl disable
$1
;;
;;
openrc
)
sudocmd rc-update del
$1
default
;;
runit
)
runit
)
sudocmd
rm
-fv
/var/service/
$SERVICE
sudocmd
rm
-fv
/var/service/
$SERVICE
;;
;;
...
@@ -660,6 +663,9 @@ __serv_enable()
...
@@ -660,6 +663,9 @@ __serv_enable()
systemd
)
systemd
)
sudocmd systemctl
enable
$1
sudocmd systemctl
enable
$1
;;
;;
openrc
)
sudocmd rc-update add
$1
default
;;
runit
)
runit
)
epm assure
$SERVICE
epm assure
$SERVICE
[
-r
"/etc/sv/
$SERVICE
"
]
||
fatal
"Can't find /etc/sv/
$SERVICE
"
[
-r
"/etc/sv/
$SERVICE
"
]
||
fatal
"Can't find /etc/sv/
$SERVICE
"
...
@@ -695,6 +701,9 @@ serv_list()
...
@@ -695,6 +701,9 @@ serv_list()
systemd
)
systemd
)
sudocmd systemctl list-units
$@
sudocmd systemctl list-units
$@
;;
;;
openrc
)
sudocmd rc-status
;;
*
)
*
)
# hack to improve list speed
# hack to improve list speed
[
"
$UID
"
=
0
]
||
{
sudocmd
$PROGDIR
/serv
--quiet
list
;
return
;
}
[
"
$UID
"
=
0
]
||
{
sudocmd
$PROGDIR
/serv
--quiet
list
;
return
;
}
...
@@ -725,6 +734,9 @@ serv_list_all()
...
@@ -725,6 +734,9 @@ serv_list_all()
systemd
)
systemd
)
sudocmd systemctl list-unit-files
$@
sudocmd systemctl list-unit-files
$@
;;
;;
openrc
)
sudocmd rc-service
-l
;;
*
)
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
;;
...
@@ -853,6 +865,9 @@ serv_restart()
...
@@ -853,6 +865,9 @@ serv_restart()
runit
)
runit
)
sudocmd sv restart
"
$SERVICE
"
sudocmd sv restart
"
$SERVICE
"
;;
;;
openrc
)
sudocmd rc-service restart
"
$SERVICE
"
;;
*
)
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
;;
...
@@ -883,6 +898,9 @@ serv_start()
...
@@ -883,6 +898,9 @@ serv_start()
runit
)
runit
)
sudocmd sv up
"
$SERVICE
"
sudocmd sv up
"
$SERVICE
"
;;
;;
openrc
)
sudocmd rc-service start
"
$SERVICE
"
;;
*
)
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
;;
...
@@ -1005,6 +1023,9 @@ serv_stop()
...
@@ -1005,6 +1023,9 @@ serv_stop()
runit
)
runit
)
sudocmd sv down
"
$SERVICE
"
sudocmd sv down
"
$SERVICE
"
;;
;;
openrc
)
sudocmd rc-service stop
"
$SERVICE
"
;;
*
)
*
)
fatal
"Have no suitable command for
$SERVICETYPE
"
fatal
"Have no suitable command for
$SERVICETYPE
"
;;
;;
...
@@ -2259,7 +2280,7 @@ case $DISTRNAME in
...
@@ -2259,7 +2280,7 @@ case $DISTRNAME in
# CMD="pkg_add"
# CMD="pkg_add"
# ;;
# ;;
# Gentoo)
# Gentoo)
# CMD="e
merge
"
# CMD="e
select
"
# ;;
# ;;
# ArchLinux)
# ArchLinux)
# CMD="pacman"
# CMD="pacman"
...
@@ -2323,7 +2344,7 @@ print_version()
...
@@ -2323,7 +2344,7 @@ print_version()
local
on_text
=
"(host system)"
local
on_text
=
"(host system)"
local
virt
=
"
$(
$DISTRVENDOR
-i
)
"
local
virt
=
"
$(
$DISTRVENDOR
-i
)
"
[
"
$virt
"
=
"(unknown)"
]
||
[
"
$virt
"
=
"(host system)"
]
||
on_text
=
"(under
$virt
)"
[
"
$virt
"
=
"(unknown)"
]
||
[
"
$virt
"
=
"(host system)"
]
||
on_text
=
"(under
$virt
)"
echo
"Service manager version 3.1.
2
"
echo
"Service manager version 3.1.
3
"
echo
"Running on
$(
$DISTRVENDOR
-e
)
$on_text
with
$SERVICETYPE
"
echo
"Running on
$(
$DISTRVENDOR
-e
)
$on_text
with
$SERVICETYPE
"
echo
"Copyright (c) Etersoft 2012-2019"
echo
"Copyright (c) Etersoft 2012-2019"
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."
...
...
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