2 changed files with 101 additions and 0 deletions
@ -0,0 +1,52 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# CONSTANTS |
|||
|
|||
BASEDIR=$(dirname "$0") |
|||
CONTAINER='' |
|||
COMMAND='' |
|||
|
|||
# FUNCTIONS |
|||
|
|||
function usage { |
|||
echo "$(basename "$0") <CONTAINER_NAME> <COMMAND>" |
|||
} |
|||
|
|||
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 |
|||
@ -0,0 +1,49 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# CONSTANTS |
|||
|
|||
BASEDIR=$(dirname "$0") |
|||
CONTAINER='' |
|||
SOURCE_FILE='' |
|||
DESTINATION_FOLDER='' |
|||
|
|||
# FUNCTIONS |
|||
|
|||
function usage { |
|||
echo "$(basename "$0") <CONTAINER_NAME> <SOURCE_FILE_FROM_HOST> <DESTINATION_FOLDER_TO_CONTAINER>" |
|||
} |
|||
|
|||
function parse_options { |
|||
while [[ $# -gt 0 ]]; do |
|||
case "$1" in |
|||
--help | -h) |
|||
usage && exit 0 |
|||
;; |
|||
*) |
|||
if [[ -z $CONTAINER ]]; then |
|||
CONTAINER=$1 |
|||
elif [[ -z $SOURCE_FILE ]]; then |
|||
SOURCE_FILE=$1 |
|||
elif [[ -z $DESTINATION_FOLDER ]]; then |
|||
DESTINATION_FOLDER=$1 |
|||
else |
|||
echo >&2 "Unknown option: $1" && usage && exit 2 |
|||
fi |
|||
;; |
|||
esac |
|||
|
|||
shift 1 # Move to the next argument |
|||
done |
|||
|
|||
[[ -n $CONTAINER ]] || [[ -n $SOURCE_FILE ]] || [[ -n $DESTINATION_FOLDER ]] || (usage && exit 1) |
|||
} |
|||
|
|||
function copy { |
|||
incus file push "$SOURCE_FILE" "$CONTAINER/$DESTINATION_FOLDER" --uid 0 --gid 0 --create-dirs |
|||
} |
|||
|
|||
# MAIN |
|||
|
|||
set -Eue |
|||
parse_options $* |
|||
copy |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue