diff --git a/skills/minio-upload/scripts/upload_to_obsidian.sh b/skills/minio-upload/scripts/upload_to_obsidian.sh index 8514d83..e097bd7 100755 --- a/skills/minio-upload/scripts/upload_to_obsidian.sh +++ b/skills/minio-upload/scripts/upload_to_obsidian.sh @@ -67,6 +67,19 @@ while [[ $# -gt 0 ]]; do esac done +# Validate mutual exclusion of conflict handling options +CONFLICT_OPTS_COUNT=0 +[ "$FORCE" = true ] && CONFLICT_OPTS_COUNT=$((CONFLICT_OPTS_COUNT + 1)) +[ "$SKIP" = true ] && CONFLICT_OPTS_COUNT=$((CONFLICT_OPTS_COUNT + 1)) +[ "$BACKUP" = true ] && CONFLICT_OPTS_COUNT=$((CONFLICT_OPTS_COUNT + 1)) +[ "$RENAME" = true ] && CONFLICT_OPTS_COUNT=$((CONFLICT_OPTS_COUNT + 1)) + +if [ $CONFLICT_OPTS_COUNT -gt 1 ]; then + echo "Error: Conflict handling options are mutually exclusive." >&2 + echo "Use only one of: --force, --skip, --backup, --rename" >&2 + exit 1 +fi + # Check file path argument if [ -z "$FILE_PATH" ]; then echo "Usage: $0 [subpath] [--force|--skip|--backup|--rename]" >&2