#!/usr/bin/env bash # CONSTANTS BASEDIR=$(dirname "$0") CONTAINER='' SOURCE_FILE='' DESTINATION_FOLDER='' # FUNCTIONS function usage { echo "$(basename "$0") " } 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 pull { local vmid=$($BASEDIR/../bin/pct-lookup "$CONTAINER") pct pull $vmid "$SOURCE_FILE" "$DESTINATION_FOLDER/$(basename $SOURCE_FILE)" } function normalize_source_file { local directory=$(dirname $SOURCE_FILE) [[ $directory =~ ^\.$ ]] && SOURCE_FILE="/root/$SOURCE_FILE" [[ -z $DESTINATION_FOLDER ]] && DESTINATION_FOLDER=. } # MAIN set -Eue parse_options $* normalize_source_file pull