fix: linting and formatting
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user