#!/bin/bash

vers=2023.11.02.A

keep_notes=1
switch_posthide=1


cd "${0%/*}"
echo
echo
echo "${0##*/} version $vers, scanning $(PWD) ..."

tempfile="temp"

files=0
for x in SUN*.AVI ; do
  if ! [ "$x" == "SUN*.AVI" ] ; then
    file[files++]="$x"
  fi
done

for x in DSCN*.MOV ; do
  if ! [ "$x" == "DSCN*.MOV" ] ; then
    file[files++]="$x"
  fi
done

for x in IMG_*.MOV ; do
  if ! [ "$x" == "IMG_*.MOV" ] ; then
    file[files++]="$x"
  fi
done

for x in VD_*.MP4 ; do
  if ! [ "$x" == "VD_*.MP4" ] ; then
    file[files++]="$x"
  fi
done

for x in DSCN*.JPG ; do
  if ! [ "$x" == "DSCN*.JPG" ] ; then
    file[files++]="$x"
  fi
done

for x in 2021*.mp4 ; do
  if ! [ "$x" == "2021*.mp4" ] ; then
    file[files++]="$x"
  fi
done

for x in IMG_*.HEIC ; do
  if ! [ "$x" == "IMG_*.HEIC" ] ; then
    file[files++]="$x"
  fi
done

for x in IMG_*.JPG ; do
  if ! [ "$x" == "IMG_*.JPG" ] ; then
    file[files++]="$x"
  fi
done

for x in SUNP*.JPG ; do
  if ! [ "$x" == "SUNP*.JPG" ] ; then
    file[files++]="$x"
  fi
done

for x in IMG_*.jpg ; do
  if ! [ "$x" == "IMG_*.jpg" ] ; then
    file[files++]="$x"
  fi
done

# image000000.jpg
for x in image0*.jpg ; do
  if ! [ "$x" == "image0*.jpg" ] ; then
    file[files++]="$x"
  fi
done

echo
echo "found $files files"
echo
for ((i=0;i<files;i++)) ; do
  f1="${file[i]}"  # "SUN001 many squirrels.AVI" | "SUN002.AVI"
  s=$(stat -f "%B" "$f1")
  d=$(date -j -f "%s" $s "+%Y.%m.%d %H.%M.%S")  # "2020.11.10 06.23.19"
  e=${f1##*.}  # "AVI"
  n1=${f1%.*}  # "SUN001 many squirrels" | "SUN002"
  n2=${n1#* }  # "many squirrels" | "SUN02"
  if [[ ("$n2" == "$n1") || (! $keep_notes) ]] ; then
    n2="${d}"  # "2020.11.10 06.23.19"
  else
    n2="${d} ${n2}"  # "2020.11.10 06.23.19 many squirrels"
  fi
  f2="${n2}.${e}"  # "2020.11.10 06.23.19 many squirrels.AVI" | "2020.11.10 06.23.19.AVI"
  if [ "$f1" != "$f2" ] ; then
    echo "mv \"$f1\" \"$f2\""
    mv "$f1" "$f2"
  fi
done
echo
echo "DONE"
echo

# hide us if switched
if [ $switch_posthide ] ; then
  if ! [ $switch_dryrun ] ; then
    osascript -e 'tell application "System Events" to set visible of application process "Terminal" to false'
  fi
fi
