diff --git a/Rsync/rsync.sh b/Rsync/rsync.sh index 0f101e5..d518019 100644 --- a/Rsync/rsync.sh +++ b/Rsync/rsync.sh @@ -25,15 +25,30 @@ source "$SCRIPT_DIR/../common.sh" parse_args "$@" -# ----------------------------- INPUT ----------------------------- -if [[ -z "$DIRECTORY" ]]; then - if [[ "${1:-}" != "" && "${1:-}" != --* && "${1:-}" != *=* ]]; then - DIRECTORY="$1" - shift - fi -fi +# ---------------------------- +# INPUT HANDLING (FIXED) +# ---------------------------- -[[ -z "$DIRECTORY" ]] && error "Missing directory" && exit 1 +DIRECTORY="" + +for ARG in "$@"; do + case "$ARG" in + --*|*=*) + # skip flags and key=value + ;; + *) + if [[ -z "$DIRECTORY" ]]; then + DIRECTORY="$ARG" + fi + ;; + esac +done + +if [[ -z "$DIRECTORY" ]]; then + error "Missing directory" + echo "Usage: $0 [--dry-run] [--status] [VAR=value]" + exit 1 +fi # ----------------------------- HOST ----------------------------- detect_hosts