diff --git a/pshell b/pshell index 8d4716b..976fb12 100755 --- a/pshell +++ b/pshell @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #Check if running as e-account @@ -58,55 +58,34 @@ export JAVA_VER=/opt/gfa/java/openjdk-12_32 export MAIN_CLASS=ch.psi.pshell.ui.App export COMMAND= -# Collect remaining args safely -REMAINING_ARGS="" -while [ $# -gt 0 ]; do +PASS=() + +while (($#)); do case $1 in - -jvmarg=*) - JVM_ARGS="${1#*=}" - #echo "JVM args: $JVM_ARGS" - ;; - -ucp=*) - UCP="${1#*=}" - #echo "UCP: $UCP" - ;; - -version=*) - export PSHELL_VER="${1#*=}" - #echo "Using version $PSHELL_VER" - ;; - -test) - export PSHELL_VER="testing" - #echo "Using testing version" - ;; - -last) - export PSHELL_VER="latest" - #echo "Using latest version" - ;; - -light) - export VER_SUFFIX="-light" - #echo "Using build type $VER_SUFFIX" - ;; - -javaver=*) - export JAVA_VER="${1#*=}" - #echo "Using Java version $JAVA_VER" - ;; - -command=*) - COMMAND="${1#*=}" - #echo "COMMAND: $COMMAND" - ;; - - *) - REMAINING_ARGS="$REMAINING_ARGS \"$1\"" - ;; + -jvmarg=*) JVM_ARGS="${1#*=}" ;; + -ucp=*) UCP="${1#*=}" ;; + -version=*) PSHELL_VER="${1#*=}" ;; + -test) PSHELL_VER="testing" ;; + -last) PSHELL_VER="latest" ;; + -light) VER_SUFFIX="-light" ;; + -javaver=*) JAVA_VER="${1#*=}" ;; + -command=*) COMMAND="${1#*=}" ;; + *) PASS+=("$1") ;; esac shift done -#echo "Remaining args: $REMAINING_ARGS" +# Show them like before, in one line: +printf 'Remaining args:' +for arg in "${PASS[@]}"; do + printf ' "%s"' "$arg" +done +echo + +# Restore positional parameters cleanly +set -- "${PASS[@]}" -# Final exec (safe with spaces) -eval set -- $REMAINING_ARGS if [[ $VER_SUFFIX != "" ]] ; then