From 5b6a156f4c8af0d4fbe816be0495913105233a18 Mon Sep 17 00:00:00 2001 From: pvincent Date: Sat, 21 Mar 2026 22:37:27 +0400 Subject: [PATCH] miaou-pull --- tools/miaou-exec | 3 ++- tools/miaou-pull | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100755 tools/miaou-pull diff --git a/tools/miaou-exec b/tools/miaou-exec index ef58dfa..8dce323 100755 --- a/tools/miaou-exec +++ b/tools/miaou-exec @@ -9,7 +9,8 @@ COMMAND='' # FUNCTIONS function usage { - echo "$(basename "$0") " + echo "$(basename "$0") -- " + echo -e "$(basename "$0") -- bash < " +} + +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 normalize_source_file { + local directory=$(dirname $SOURCE_FILE) + [[ $directory =~ ^\.$ ]] && SOURCE_FILE="/root/$SOURCE_FILE" +} + +function copy { + incus file pull "$CONTAINER/$SOURCE_FILE" "$DESTINATION_FOLDER" --create-dirs +} + +# MAIN + +set -Eue +parse_options $* +normalize_source_file +copy