X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/0e6447ddfc020d3ffbc8a7e3f04db058d4091958..25990e39198e6c7e584a1399ddd5d489a7b826a8:/user/gthumb/keep.org diff --git a/user/gthumb/keep.org b/user/gthumb/keep.org index f8140b6..a4c1c61 100644 --- a/user/gthumb/keep.org +++ b/user/gthumb/keep.org @@ -8,13 +8,14 @@ kept in a ~keep/~ directory along with any adjacent files that share the same stem located within the same directory (e.g. ~dir1/file123.*~). Also moved are matching files in directories neighboring the originalʼs parent directory (e.g. ~dir2/file123.*~). -The destination trash directory is ~keep~; parent directories ~JPG/~ +The destination directory is ~keep~; parent directories ~JPG/~ and ~ARW/~ (e.g. ~dir1~, ~dir2~) are preserved within ~keep/~. ** Stats -Version: 0.0.1 +Version: 0.0.3 +License: GPLv3+ gThumb version: ~3.12.6~ -Suggested keyboard shortcut: ~Shift + T~ +Suggested keyboard shortcut: ~Shift + K~ ** Usage *keep* is useful for pruning photos with multiple format extensions @@ -29,32 +30,49 @@ following moves are performed: - ~JPG/DSC01001.JPG.ots~ is moved to ~keep/JPG/DSC01001.JPG.ots~ - ~ARW/DSC01001.ARW~ is moved to ~keep/ARW/DSC01001.ARW~ -Thus, by browsing ~JPG/~ in gThumb and performing *keep* on defsired -photos, related photos from not only ~JPG/~, ~ARW/~ and -other similar directories are moved for preservation in ~keep/~. +Thus, by browsing ~JPG/~ in gThumb and performing *keep* on desired +photos, related photos from not only ~JPG/~, ~ARW/~ and other similar +directories are moved for preservation in ~keep/~. -Then, it is upon the user to archive the contents of ~keep/~ to. +Then, it is upon the user to archive the contents of ~keep/~. ** Code +Paste the code below into the ~Command~ field of the ~Edit Command~ +window under 🔧 → Personalize… . + Line-by-line view: #+BEGIN_EXAMPLE -# keep v0.0.1 -dbf=/tmp/gtlogkeep.txt; -f="%F"; +# keep v0.0.3 +fdebug=/tmp/gtlogkeep.txt; +f=%F; fBase="$(basename "$f")"; fne="${fBase%.*}"; dppar="$(dirname %P)"; dKeep="${dppar}/keep"; -dKeepJpg="${dKeep}/JPG/"; -dKeepArw="${dKeep}/ARW/"; -mkdir -p "$dKeep" "$dKeepJpg" "$dKeepArw"; -printf "%s\n" "$dbf" "$f" "$fBase" "$fne" "$dppar" "$dKeep" 1>"$dbf" 2>&1; -mv -n -t "$dKeepJpg" "${dppar}/"*"/${fne}.JPG"*; -mv -n -t "$dKeepArw" "${dppar}/"*"/${fne}.ARW"*; +if [ -z "$fne" ]; then printf "FATAL: Empty stem from:%s\n" "$fne" 1>>"$fdebug" 2>&1; exit 1; fi; +runDate="$(date -Is 2>&1)"; +printf "STATUS:runDate:%s\n" "$runDate" 1>>"$fdebug" 2>&1; +printf "DEBUG:fdebug:%s\n" "$fdebug" 1>>"$fdebug" 2>&1; +printf "DEBUG:f:%s\n" "$f" 1>>"$fdebug" 2>&1; +printf "DEBUG:fBase:%s\n" "$fBase" 1>>"$fdebug" 2>&1; +printf "DEBUG:fne:%s\n" "$fne" 1>>"$fdebug" 2>&1; +printf "DEBUG:dppar:%s\n" "$dppar" 1>>"$fdebug" 2>&1; +printf "DEBUG:dKeep:%s\n" "$dKeep" 1>>"$fdebug" 2>&1; +for fsrc in "${dppar}"/*/"${fne}".*; do + if [ ! -e "$fsrc" ]; then continue; fi; + sdname="$(basename "$(dirname "$fsrc")" )"; + ddest="${dKeep}/${sdname}"; + printf "DEBUG:fsrc:%s\n" "$fsrc" 1>>"$fdebug" 2>&1; + printf "DEBUG:sdname:%s\n" "$sdname" 1>>"$fdebug" 2>&1; + printf "DEBUG:ddest:%s\n" "$ddest" 1>>"$fdebug" 2>&1; + if [ ! -d "$ddest" ]; then + printf "DEBUG:Destination dir does not exist. Creating:%s\n" "$ddest" 1>>"$fdebug" 2>&1; + mkdir -p "$ddest"; + else + printf "DEBUG:Destination dir exists:%s\n" "$ddest" 1>>"$fdebug" 2>&1; + fi; + printf "STATUS: Moving %s → %s\n" "$fsrc" "$ddest/" 1>>"$fdebug" 2>&1; + mv -n "$fsrc" "$ddest/"; +done 1>>"$fdebug" 2>&1; sleep 1; #+END_EXAMPLE - -Paste-ready view: -#+begin_example -dbf=/tmp/gtlogkeep.txt; f="%F"; fBase="$(basename "$f")"; fne="${fBase%.*}"; dppar="$(dirname %P)"; dKeep="${dppar}/keep"; dKeepJpg="${dKeep}/JPG/"; dKeepArw="${dKeep}/ARW/"; mkdir -p "$dKeep" "$dKeepJpg" "$dKeepArw"; printf "%s\n" "$dbf" "$f" "$fBase" "$fne" "$dppar" "$dKeep" 1>"$dbf" 2>&1; mv -n -t "$dKeepJpg" "${dppar}/"*"/${fne}.JPG"*; mv -n -t "$dKeepArw" "${dppar}/"*"/${fne}.ARW"*; sleep 1; -#+end_example