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