scripts/checkdeps: fix library test

This commit is contained in:
MilhouseVH 2017-07-16 21:23:26 +01:00
parent d8db9d5b0b
commit 426e8147a4

View File

@ -20,6 +20,20 @@
. config/options $1 . config/options $1
get_yes_no()
{
local ans
read -p "Would you like to install the needed tools ? (y/n) " ans
[ "${ans,,}" == "y" ] && return 0
[ "${ans,,}" == "yes" ] && return 0
return 1
}
test_libjson-perl()
{
perl -MJSON -e 'exit(0);' 2>/dev/null
}
if [ -f /etc/lsb-release ]; then if [ -f /etc/lsb-release ]; then
DISTRO=$(grep DISTRIB_ID /etc/lsb-release | cut -d "=" -f 2 | tr A-Z a-z) DISTRO=$(grep DISTRIB_ID /etc/lsb-release | cut -d "=" -f 2 | tr A-Z a-z)
fi fi
@ -62,7 +76,7 @@ case "$DISTRO" in
;; ;;
esac esac
if ! perl -MJSON -e 'exit(0);' 2>/dev/null; then if ! test_libjson-perl; then
files="$files perl/JSON.pm" files="$files perl/JSON.pm"
files_pkg="$files_pkg libjson-perl" files_pkg="$files_pkg libjson-perl"
fi fi
@ -95,7 +109,11 @@ done
i=0 i=0
while file=`getarg $i $files` && [ -n "$file" ]; do while file=`getarg $i $files` && [ -n "$file" ]; do
[ ! -f $file ] && need="$need $file" && need_pkg="$need_pkg `getarg $i $files_pkg`" installed=N
file_pkg=`getarg $i $files_pkg`
[ "$(type -t "test_$file_pkg")" == "function" ] && test_$file_pkg && installed=Y
[ $installed == N -a -f $file ] && installed=Y
[ $installed == N ] && need="$need $file" && need_pkg="$need_pkg $file_pkg"
i=$(($i+1)) i=$(($i+1))
done done
@ -106,29 +124,23 @@ if [ -n "$need" ]; then
case "$DISTRO" in case "$DISTRO" in
ubuntu|debian|\"elementary\") ubuntu|debian|\"elementary\")
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo apt-get install $need_pkg
[ "$ans" = "y" ] && sudo apt-get install $need_pkg
;; ;;
fedora|centos|rhel) fedora|centos|rhel)
if [ `which dnf` ]; then YUM=dnf; else YUM=yum; fi if [ `which dnf` ]; then YUM=dnf; else YUM=yum; fi
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo $YUM install $need_pkg
[ "$ans" = "y" ] && sudo $YUM install $need_pkg
;; ;;
gentoo) gentoo)
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo emerge --ask --deep $need_pkg
[ "$ans" = "y" ] && sudo emerge --ask --deep $need_pkg
;; ;;
mageia) mageia)
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo urpmi $need_pkg
[ "$ans" = "y" ] && sudo urpmi $need_pkg
;; ;;
arch) arch)
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo pacman -Sy $need_pkg
[ "$ans" = "y" ] && sudo pacman -Sy $need_pkg
;; ;;
opensuse) opensuse)
read -p "would you like to install the needed tools ? (y/n) " ans get_yes_no && sudo zypper install -y --no-recommends $need_pkg
[ "$ans" = "y" ] && sudo zypper install -y --no-recommends $need_pkg
;; ;;
*) *)
echo "**** unsupported distro $DISTRO ****" echo "**** unsupported distro $DISTRO ****"
@ -137,7 +149,6 @@ if [ -n "$need" ]; then
esac esac
fi fi
need="" need=""
need_pkg="" need_pkg=""
@ -149,7 +160,11 @@ done
i=0 i=0
while file=`getarg $i $files` && [ -n "$file" ]; do while file=`getarg $i $files` && [ -n "$file" ]; do
[ ! -f $file ] && need="$need $file" && need_pkg="$need_pkg `getarg $i $files_pkg`" installed=N
file_pkg=`getarg $i $files_pkg`
[ "$(type -t "test_$file_pkg")" == "function" ] && test_$file_pkg && installed=Y
[ $installed == N -a -f $file ] && installed=Y
[ $installed == N ] && need="$need $file" && need_pkg="$need_pkg $file_pkg"
i=$(($i+1)) i=$(($i+1))
done done