fix: linting and formatting

This commit is contained in:
2025-10-30 19:25:07 +01:00
parent dd8a29e1be
commit f32e1981d0

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env bash #!/bin/bash
# Rename all image and video files in the current directory by their capture/creation date. # Rename all image and video files in the current directory by their capture/creation date.
set -euo pipefail set -euo pipefail
mkdir -p done mkdir -p 'done'
# Directory to process (defaults to current directory) # Directory to process (defaults to current directory)
DIR="${1:-.}" DIR="${1:-.}"
@@ -15,61 +15,61 @@ FILES=(*.jpg *.jpeg *.png *.mov *.mp4)
# FILES=(*.jpg *.jpeg *.png) # FILES=(*.jpg *.jpeg *.png)
for FILE in "${FILES[@]}"; do for FILE in "${FILES[@]}"; do
# Skip if not a regular file # Skip if not a regular file
[ -f "$FILE" ] || continue [ -f "$FILE" ] || continue
# Extract datetime from EXIF or file creation date as fallback # Extract datetime from EXIF or file creation date as fallback
DATE=$(exiftool -m -DateTimeOriginal -d "%Y-%m-%d %H-%M-%S" -s3 "$FILE" | head -n 1) DATE=$(exiftool -m -DateTimeOriginal -d "%Y-%m-%d %H-%M-%S" -s3 "$FILE" | head -n 1)
# If EXIF data missing, fallback to filesystem creation/modification time # If EXIF data missing, fallback to filesystem creation/modification time
if [ -z "$DATE" ]; then if [ -z "$DATE" ]; then
# The following lines need to be customized for the specific image names # The following lines need to be customized for the specific image names
continue continue
# if [[ "$FILE" == *.jpg || "$FILE" == *.jpeg || "$FILE" == *.png ]]; then # if [[ "$FILE" == *.jpg || "$FILE" == *.jpeg || "$FILE" == *.png ]]; then
# if [[ "$FILE" == IMG*WA* ]]; then # if [[ "$FILE" == IMG*WA* ]]; then
# DATE=$(echo $FILE | sed 's/IMG-//' | sed 's/-WA.*//') # DATE=$(echo $FILE | sed 's/IMG-//' | sed 's/-WA.*//')
# DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2}" # DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2}"
# elif [[ "$FILE" == *" "*" "* ]]; then # elif [[ "$FILE" == *" "*" "* ]]; then
# DATE=$(echo $FILE | awk '{print $1, $2}') # DATE=$(echo $FILE | awk '{print $1, $2}')
# else # else
# DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:8:2}-${FILE:10:2}-${FILE:12:2}" # DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:8:2}-${FILE:10:2}-${FILE:12:2}"
# fi # fi
# fi # fi
# if [[ "$FILE" == *.mov || "$FILE" == *.mp4 ]]; then # if [[ "$FILE" == *.mov || "$FILE" == *.mp4 ]]; then
# #
# if [[ "$FILE" == *" "*" "* ]]; then # if [[ "$FILE" == *" "*" "* ]]; then
# DATE=$(echo $FILE | awk '{print $1, $2}') # DATE=$(echo $FILE | awk '{print $1, $2}')
# DATE=$(echo "20$DATE") # DATE=$(echo "20$DATE")
# elif [[ "$FILE" == VID*WA* ]]; then # elif [[ "$FILE" == VID*WA* ]]; then
# DATE=$(echo $FILE | sed 's/VID-//' | sed 's/-WA.*//') # DATE=$(echo $FILE | sed 's/VID-//' | sed 's/-WA.*//')
# DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2}" # DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2}"
# elif [[ "$FILE" == VID_* ]]; then # elif [[ "$FILE" == VID_* ]]; then
# DATE=$(echo $FILE | sed 's/VID_//' ) # DATE=$(echo $FILE | sed 's/VID_//' )
# DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2} ${DATE:9:2}-${DATE:11:2}-${DATE:13:2}" # DATE="${DATE:0:4}-${DATE:4:2}-${DATE:6:2} ${DATE:9:2}-${DATE:11:2}-${DATE:13:2}"
# elif [[ "$FILE" =~ ^[0-9]+_[0-9]+\..*$ ]]; then # elif [[ "$FILE" =~ ^[0-9]+_[0-9]+\..*$ ]]; then
# DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:9:2}-${FILE:11:2}-${FILE:13:2}" # DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:9:2}-${FILE:11:2}-${FILE:13:2}"
# elif [[ "$FILE" =~ ^[0-9]+\..*$ ]]; then # elif [[ "$FILE" =~ ^[0-9]+\..*$ ]]; then
# DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:8:2}-${FILE:10:2}-${FILE:12:2}" # DATE="${FILE:0:4}-${FILE:4:2}-${FILE:6:2} ${FILE:8:2}-${FILE:10:2}-${FILE:12:2}"
# else # else
# continue # continue
# fi # fi
# fi # fi
fi fi
# Extract extension (lowercase) # Extract extension (lowercase)
EXT="${FILE##*.}" EXT="${FILE##*.}"
EXT_LOWER=$(echo "$EXT" | tr '[:upper:]' '[:lower:]') EXT_LOWER=$(echo "$EXT" | tr '[:upper:]' '[:lower:]')
NEWNAME="done/${DATE}.${EXT_LOWER}" NEWNAME="done/${DATE}.${EXT_LOWER}"
# Handle duplicates (append counter) # Handle duplicates (append counter)
COUNTER=1 COUNTER=1
while [ -e "$NEWNAME" ]; do while [ -e "$NEWNAME" ]; do
NEWNAME="done/${DATE} $COUNTER.${EXT_LOWER}" NEWNAME="done/${DATE} $COUNTER.${EXT_LOWER}"
((COUNTER++)) ((COUNTER++))
done done
echo "Renaming: $FILE$NEWNAME" echo "Renaming: $FILE$NEWNAME"
mv "$FILE" "$NEWNAME" mv "$FILE" "$NEWNAME"
done done