From fa878851ebf6f3d7558cf90c55bbb3f06bf848ba Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Tue, 19 Jul 2022 15:33:35 +0200 Subject: [PATCH] Improved rphoto. --- Convention photos/traitements/rphoto | 79 +++++++++++++++------------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/Convention photos/traitements/rphoto b/Convention photos/traitements/rphoto index a185b8a..ff834d0 100755 --- a/Convention photos/traitements/rphoto +++ b/Convention photos/traitements/rphoto @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash checkcommand() { @@ -17,62 +17,65 @@ checkcommand() help() { - echo "Usage:" - echo " tphoto -h Display help." - echo " tphoto Rename jpg files from current directory with Exif datetime." - echo " tphoto *.jpg Rename files in parameter with Exif datetime." - echo " tphoto -f Rename jpg files from current directory with Exif datetime or file datetime." - echo " tphoto -f *.jpg Rename files in parameter with Exif datetime or file datetime." + echo "Usage: tphoto [-n] [ -h | -f ] [ *.jpg ]" + echo "Rename jpg files using Exif Original Date/Time if exists." + echo " -h Display help." + echo " -f Force rename jpg files with Exif datetime or file datetime." + echo " -n Dry run." } -renameFromDirectoryWithExifOnly() +doRename() { - find . -maxdepth 1 -type f -iname "*.jpg" | while read path - do - filename=$(basename $path) - #echo "$filename" - if [[ $(jhead $filename | grep -c Date) == 1 ]]; then - #echo "yop $filename" - jhead -nIMG%Y%m%d-%H%M%S "$filename" - else - echo "$filename IGNORED" - fi - done + local filename=$(basename $1) + #echo "$filename" + jhead -nIMG%Y%m%d-%H%M%S "$filename" } -renameFromDirectory() +doRenameCarefully() { - find . -maxdepth 1 -type f -iname "*.jpg" | while read path - do - filename=$(basename $path) - #echo "$filename" - jhead -nIMG%Y%m%d-%H%M%S "$filename" - done + local filename=$(basename $1) + #echo "$filename" + if [[ $(exiftool $filename | grep -c "Date/Time Original") > 0 ]]; then + #echo "yop $filename" + doRename "$filename" + else + echo "$filename IGNORED" + fi } - # main +checkcommand "exiftool" +if [[ $? == 0 ]]; then + exit 1 +else + checkcommand "jhead" + if [[ $? == 0 ]]; then + exit 1 + fi +fi + + if [[ $# == 0 ]]; then - renameFromDirectoryWithExifOnly + find . -maxdepth 1 -type f -iname "*.jpg" | while read path + do + doRenameCarefully "$path" + done elif [[ "$1" == "-h" ]]; then help elif [[ "$1" == "-f" && $# == 1 ]]; then - renameFromDirectory + find . -maxdepth 1 -type f -iname "*.jpg" | while read path + do + doRename "$path" + done elif [[ "$1" == "-f" && $# > 1 ]]; then for filename do if [[ "$filename" != "-f" ]]; then - #echo "$filename" - jhead -nIMG%Y%m%d-%H%M%S "$filename" + doRename "$filename" fi done else for filename do - #echo "$filename" - if [[ $(jhead $filename | grep -c Date) == 1 ]]; then - #echo "yop $filename" - jhead -nIMG%Y%m%d-%H%M%S "$filename" - else - echo "$filename IGNORED" - fi + doRenameCarefully "$filename" done fi +