Browse Source

refactored miaou-exec

main
pvincent 3 weeks ago
parent
commit
0c60c486c1
  1. 28
      tools/miaou-exec

28
tools/miaou-exec

@ -4,7 +4,7 @@
BASEDIR=$(dirname "$0")
CONTAINER=''
COMMAND=''
COMMAND_LINE=()
# FUNCTIONS
@ -25,30 +25,32 @@ function parse_options {
usage && exit 0
;;
--)
# don't care with --
shift 1
COMMAND_LINE+=("$@")
break
;;
*)
if [[ -z $CONTAINER ]]; then
if [[ $1 =~ ^- ]]; then
# options if any
echo >&2 "Unknown option: $1" && usage && exit 2
elif [[ -z $CONTAINER ]]; then
CONTAINER=$1
elif [[ -z $COMMAND ]]; then
# FIXME: quite tricky
COMMAND=("$@")
for i in "${!COMMAND[@]}"; do
local value=${COMMAND[$i]}
[[ $value == *" "* ]] && COMMAND[$i]="'$value'" || true # add quote when space detected!
done
break
else
COMMAND_LINE+=("$1")
fi
;;
esac
shift 1
done
[[ -n $CONTAINER ]] || [[ -n $COMMAND ]] || (usage && exit 1)
# echo "CONTAINER=$CONTAINER"
# echo "COMMAND_LINE=(${COMMAND_LINE[@]})"
([[ -z $CONTAINER ]] || [[ ${#COMMAND_LINE[@]} == 0 ]]) && usage && exit 1 || true
}
function exec {
eval "incus exec $CONTAINER -- ${COMMAND[@]}"
incus exec "$CONTAINER" -- "${COMMAND_LINE[@]}"
}
# MAIN

Loading…
Cancel
Save