From 87bcc34d5aeb949f24b8ec54bfade3e3e4659e5f Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Tue, 10 Feb 2026 15:18:49 +0100 Subject: [PATCH] add link option for photo-move --- modules/media-process.nix | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/media-process.nix b/modules/media-process.nix index 6d21b26..56f4ced 100644 --- a/modules/media-process.nix +++ b/modules/media-process.nix @@ -109,15 +109,17 @@ } function photo-move() { - local delete_source=0 + local mode=copy if [[ "$1" == "-d" || "$1" == "--delete" ]]; then - delete_source=1 - shift + mode=move; shift + elif [[ "$1" == "-l" || "$1" == "--link" ]]; then + mode=link; shift fi if [[ $# -ne 2 ]]; then - echo "Usage: photo-move [-d|--delete] " + echo "Usage: photo-move [-d|--delete|-l|--link] " echo " -d, --delete Move files instead of copying" + echo " -l, --link Hardlink instead of copying" echo " photo-move /Volumes/CAMERA/DCIM ~/DCIM" return 1 fi @@ -144,11 +146,11 @@ local target="$dest/''${raw_date:0:4}/$raw_date" mkdir -p "$target" - if (( delete_source )); then - mv "$file" "$target/$name" - else - cp -a "$file" "$target/$name" - fi + case $mode in + move) mv "$file" "$target/$name" ;; + link) ln "$file" "$target/$name" ;; + *) cp -a "$file" "$target/$name" ;; + esac done < <(find "$src" -type f \( \ -iname "*.mp4" -o -iname "*.mov" -o -iname "*.mts" -o -iname "*.m2ts" -o -iname "*.avi" \ -o -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.heic" -o -iname "*.heif" \