#!/usr/bin/env bash # CONSTANTS BASEDIR=$(dirname "$0") CONTAINER='' COMMAND='' # FUNCTIONS function usage { echo "$(basename "$0") " } function parse_options { while [[ $# -gt 0 ]]; do case "$1" in --help | -h) usage && exit 0 ;; --) # don't care with -- ;; *) if [[ -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 fi ;; esac shift 1 done [[ -n $CONTAINER ]] || [[ -n $COMMAND ]] || (usage && exit 1) } function exec { eval "incus exec $CONTAINER -- ${COMMAND[@]}" } # MAIN set -Eue parse_options "$@" exec