#!/bin/bash

set -euo pipefail

DIR="${1:-.}"

for f in "$DIR"/DSC_*.JPG; do
    [ -f "$f" ] || continue

    ts=$(exiv2 "$f" 2>/dev/null | awk '/Image timestamp/ {print $4, $5}')

    if [ -z "$ts" ]; then
        echo "WARN: no EXIF timestamp in $f, skipping" >&2
        continue
    fi

    # "2026:06:27 09:00:04" → "20260627_090004"
    newname=$(echo "$ts" | tr -d ':' | tr ' ' '_')
    newfile="$DIR/${newname}.JPG"

    # Avoid clobbering if two shots share the same second
    if [ -f "$newfile" ] && [ "$f" != "$newfile" ]; then
        i=2
        while [ -f "$DIR/${newname}_${i}.JPG" ]; do
            (( i++ ))
        done
        newfile="$DIR/${newname}_${i}.JPG"
    fi

    base=$(basename "$f")
    newbase=$(basename "$newfile")

    if [ "$base" = "$newbase" ]; then
        echo "SKIP (already named): $base"
    else
        echo "$base  →  $newbase"
        mv -- "$f" "$newfile"
    fi
done
