Browse Source

simplify v-run-cli-cmd: don't rely on hardcoded paths which may differ between distros

Robert Zollner 6 years ago
parent
commit
994cb83ae7
1 changed files with 26 additions and 28 deletions
  1. 26 28
      bin/v-run-cli-cmd

+ 26 - 28
bin/v-run-cli-cmd

@@ -25,38 +25,36 @@ if [ -z $homedir ]; then
 fi
 
 if [ "$clicmd" = "composer" ]; then
-    realcmd="$homedir/.composer/composer"
-else
-    realcmd="$(which "$clicmd")"
-    check_result $? "Unknown cli command" $E_NOTEXIST
+    clicmd="$homedir/.composer/composer"
 fi
 
-if [ ! -x "$realcmd" ]; then
+if [ -z "$(which "$clicmd")" ]; then
     check_result $E_NOTEXIST "Error: Cli command does not exist"
 fi
+basecmd="$(basename "$clicmd")"
 
-if [ "$realcmd" != '/bin/ps'            -a \
-     "$realcmd" != '/bin/ls'            -a \
-     "$realcmd" != '/bin/tar'           -a \
-     "$realcmd" != '/bin/zip'           -a \
-     "$realcmd" != '/usr/bin/unzip'     -a \
-     "$realcmd" != '/bin/gzip'          -a \
-     "$realcmd" != '/bin/gunzip'        -a \
-     "$realcmd" != '/bin/mkdir'         -a \
-     "$realcmd" != '/usr/bin/find'      -a \
-     "$realcmd" != '/usr/bin/id'        -a \
-     "$realcmd" != '/bin/grep'          -a \
-     "$realcmd" != '/bin/egrep'         -a \
-     "$realcmd" != '/bin/sed'           -a \
-     "$realcmd" != '/bin/cat'           -a \
-     "$realcmd" != '/usr/bin/php5.6'    -a \
-     "$realcmd" != '/usr/bin/php7.0'    -a \
-     "$realcmd" != '/usr/bin/php7.1'    -a \
-     "$realcmd" != '/usr/bin/php7.2'    -a \
-     "$realcmd" != '/usr/bin/php7.3'    -a \
-     "$realcmd" != '/usr/bin/php7.4'    -a \
-     "$realcmd" != '/usr/bin/php'       -a \
-     "$clicmd"  != 'composer' ]; then
+if [ "$basecmd" != 'ps'         -a \
+     "$basecmd" != 'ls'         -a \
+     "$basecmd" != 'tar'        -a \
+     "$basecmd" != 'zip'        -a \
+     "$basecmd" != 'unzip'      -a \
+     "$basecmd" != 'gzip'       -a \
+     "$basecmd" != 'gunzip'     -a \
+     "$basecmd" != 'mkdir'      -a \
+     "$basecmd" != 'find'       -a \
+     "$basecmd" != 'id'         -a \
+     "$basecmd" != 'grep'       -a \
+     "$basecmd" != 'egrep'      -a \
+     "$basecmd" != 'sed'        -a \
+     "$basecmd" != 'cat'        -a \
+     "$basecmd" != 'php5.6'     -a \
+     "$basecmd" != 'php7.0'     -a \
+     "$basecmd" != 'php7.1'     -a \
+     "$basecmd" != 'php7.2'     -a \
+     "$basecmd" != 'php7.3'     -a \
+     "$basecmd" != 'php7.4'     -a \
+     "$basecmd" != 'php'        -a \
+     "$basecmd" != 'composer' ]; then
     check_result $E_FORBIDEN "Error: Cli command not enabled"
 fi
 
@@ -65,7 +63,7 @@ for ((I=3; I <= $# ; I++)); do
     cmdArgs="$cmdArgs ${all_scriptargs[${I}-1]}"
 done
 
-runuser -u "$user" -- $realcmd $cmdArgs
+runuser -u "$user" -- $clicmd $cmdArgs
 if [ $? -ne 0 ]; then 
     echo "Error: cmd exited with errors"
     exit 3