Commit f8337cb1 authored by Vitaly Lipatov's avatar Vitaly Lipatov

epm-restore: rewrite perl requires without shyaml (via perl Makefile.PL PRINT_PREREQ=1)

parent 47e16eb3
......@@ -269,11 +269,44 @@ __epm_print_npm_list()
[ -n "$dryrun" ] || echo "$ilist"
}
__epm_print_perl_list()
{
local reqmacro="$1"
local req_file="$2"
local l
for l in $(cat) ; do
# perl(Class::ErrorHandler)>=0
echo "$l" | grep -q '^perl(' || continue
local name="$(echo "$l" | sed -e 's|>=.*||' -e 's|::|/|g' -e 's|)|.pm)|')"
[ "$name" = "perl(perl.pm)" ] && continue
[ -z "$name" ] && continue
local ver="$(echo "$l" | sed -e 's|.*>=||')"
[ -z "$name" ] && continue
if [ -n "$dryrun" ] ; then
local pi=''
local sign=''
[ "$ver" = "0" ] || sign=" >= $ver"
pi="$pi$reqmacro $name$sign"
echo "$pi"
continue
else
local pi="$name"
#echo " $l -> $name -> $pi"
fi
[ -n "$name" ] || continue
ilist="$ilist $pi"
done < $req_file
[ -n "$dryrun" ] || echo "$ilist"
}
__epm_print_perl_list_shyaml()
{
local reqmacro="$1"
local req_file="$2"
local l
while read l ; do
# Convert::ASN1: 0.10
echo "$l" | grep -q '^ *\(.*\): \(.*\)' || continue
......@@ -359,11 +392,35 @@ __epm_restore_npm()
docmd epm install $ilist
}
# TODO: check
__epm_restore_perl()
{
local req_file="$1"
if [ -n "$dryrun" ] ; then
local lt=$(mktemp)
a= /usr/bin/perl $req_file PRINT_PREREQ=1 >$lt
# all requirements will autodetected during packing, put it to the buildreq
echo
__epm_restore_print_comment "$req_file"
__epm_print_perl_list "BuildRequires:" $lt
rm -f $lt
return
fi
info "Install requirements from $req_file ..."
local lt=$(mktemp)
a= /usr/bin/perl $req_file PRINT_PREREQ=1 >$lt
ilist="$(__epm_print_perl_list "" $lt)"
rm -f $lt
docmd epm install $ilist
}
# disabled
__epm_restore_perl_shyaml()
{
local req_file="$1"
epm assure shyaml || fatal
if [ -n "$dryrun" ] ; then
......@@ -426,7 +483,10 @@ __epm_restore_by()
package.json)
[ -s "$req_file" ] && __epm_restore_npm "$req_file"
;;
META.yml)
# META.yml)
# [ -s "$req_file" ] && __epm_restore_perl "$req_file"
# ;;
Makefile.PL)
[ -s "$req_file" ] && __epm_restore_perl "$req_file"
;;
*.sln|*.csproj)
......@@ -461,7 +521,7 @@ epm_restore()
# if run with empty args
for i in requirements.txt requirements/default.txt requirements_dev.txt requirements-dev.txt requirements/dev.txt dev-requirements.txt \
requirements-test.txt requirements_test.txt requirements/test.txt test-requirements.txt requirements/coverage.txt \
Gemfile requires.txt package.json setup.py python_dependencies.py META.yml \
Gemfile requires.txt package.json setup.py python_dependencies.py Makefile.PL \
*.sln *.csproj ; do
__epm_restore_by $i
done
......
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