From 3eb70ff9209208299911d30765779677f4f3581a Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Fri, 8 Jul 2022 02:00:59 +0200 Subject: [PATCH] Added photos scripts. --- Convention photos/lowext | 30 ++++++++++++++ Convention photos/tphoto | 87 ++++++++++++++++++++++++++++------------ 2 files changed, 92 insertions(+), 25 deletions(-) create mode 100755 Convention photos/lowext diff --git a/Convention photos/lowext b/Convention photos/lowext new file mode 100755 index 0000000..bf783b0 --- /dev/null +++ b/Convention photos/lowext @@ -0,0 +1,30 @@ +#!/bin/bash + +checkcommand() +{ + local result + local command="$1" + which "$command" 1>/dev/null 2>&1 + if [[ $? == 0 ]]; then + echo "$command requirement OK" + result=1 + else + echo "$command requirement MISSING" + result=0 + fi + return $result +} + +# main +if [[ "$1" == "-h" ]]; then + echo "The lowext command lowercases JPG file extensions in the current directory not recursively." +else + checkcommand rename + if [[ $? == 1 ]]; then + uppercaseCount=$(find -maxdepth 1 -name '*.JPG' | wc -l) + if [[ $uppercaseCount > 0 ]]; then + rename 's/JPG/jpg/' *.JPG + fi + echo ".JPG -> .jpg: $uppercaseCount" + fi +fi diff --git a/Convention photos/tphoto b/Convention photos/tphoto index 2caa503..04dc8c6 100755 --- a/Convention photos/tphoto +++ b/Convention photos/tphoto @@ -1,41 +1,78 @@ #!/bin/bash -function checkJhead() +checkcommand() { local result - local check=$(which ant) - if [[ "$check" =~ ^/.* ]]; then - echo "jhead requirement OK" + local command="$1" + which "$command" 1>/dev/null 2>&1 + if [[ $? == 0 ]]; then + echo "$command requirement OK" result=1 else - echo "jhead requirement MISSING" + echo "$command requirement MISSING" result=0 fi return $result } -# main +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." +} -# Lowercase extension. -uppercaseCount=$(find -maxdepth 1 -name '*.JPG' | wc -l) -if [[ $uppercaseCount > 0 ]]; then - rename 's/JPG/jpg/' *.JPG -fi -echo ".JPG -> .jpg: $uppercaseCount" - -# Rename. -checkJhead -if [[ $? == 1 ]]; then - count=0 - for filename in $(ls *.jpg); do - #echo "==== $filename" - if [[ $(jhead $filename | grep Date) =~ ^Date.* ]]; then - #echo "yop $filename" - jhead -n%Y%m%d-%H%M%S "$filename" - let "count+=1" +renameFromDirectoryWithExifOnly() +{ + 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 -n%Y%m%d-%H%M%S "$filename" + else + echo "$filename IGNORED" + fi + done +} + +renameFromDirectory() +{ + find . -maxdepth 1 -type f -iname "*.jpg" | while read path + do + filename=$(basename $path) + #echo "$filename" + jhead -n%Y%m%d-%H%M%S "$filename" + done +} + + +# main +if [[ $# == 0 ]]; then + renameFromDirectoryWithExifOnly +elif [[ "$1" == "-h" ]]; then + help +elif [[ "$1" == "-f" && $# == 1 ]]; then + renameFromDirectory +elif [[ "$1" == "-f" && $# > 1 ]]; then + for filename do + if [[ "$filename" != "-f" ]]; then + #echo "$filename" + jhead -n%Y%m%d-%H%M%S "$filename" fi done - echo "Renamed: $count" else - echo "KO" + for filename do + #echo "$filename" + if [[ $(jhead $filename | grep -c Date) == 1 ]]; then + #echo "yop $filename" + jhead -n%Y%m%d-%H%M%S "$filename" + else + echo "$filename IGNORED" + fi + done fi