Changed to bash and fixed the need of escaping double quotes inside single quotes

This commit is contained in:
Alexandre Gobbo
2025-09-30 11:55:58 +02:00
parent f95bfc55e0
commit 705418e9ee

65
pshell
View File

@@ -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