
#!/bin/sh
# File	: ren_jpg-files.sh
# By	: MaartenDeBoer.nl, 221121
# Subject	: Script to rename jpg-files based on creation-date-time
# (0.2),230625	: Add 20*files
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
LOG="${HOME}/log/${PGM}.log"
JPG_DIR="."
PREFIX="*"
#PREFIX="[I2][M0*]*"
#PREFIX="20*"
EXT="[Jj][Pp][Gg]"

YR=`date +%Y`

if [ "${1}" != "" ]; then
  JPG_DIR="${1}"
fi

echo "  Starting in ${JPG_DIR}"
sleep 1

cd ${JPG_DIR}
ls -1 ${PREFIX}.${EXT}|grep ^20|while read FNAME REST
do
  ls ${FNAME}
#  file ${FNAME}

# When FNAME ^2023 (YYYY-MM-DD_HH-MM-SS), then renamed to "long" name. Do shorten.
  SUFIX1_FNAME=`echo ${FNAME}|grep -v ^${YR}`
  if [ "${SUFIX1_FNAME}" = "" ]; then
    SUFIX1_FNAME=`echo ${FNAME}|grep ^${YR}|grep "_"|cut -d\_ -f2-`
  fi
  SUFIX2_FNAME=`echo ${FNAME}|grep ^${YR}|grep "_"|cut -d\_ -f3-`
#  SUFIX3_FNAME=`echo ${FNAME}|grep ^${YR}|grep "_"|cut -d\_ -f4-`
  SUFIX_FNAME=""
  if [ "${SUFIX3_FNAME}" != "" ]; then
    SUFIX_FNAME="${SUFIX3_FNAME}"
  else
    if [ "${SUFIX2_FNAME}" != "" ]; then
      SUFIX_FNAME="${SUFIX2_FNAME}"
    else
      if [ "${SUFIX1_FNAME}" != "" ]; then
        SUFIX_FNAME="${SUFIX1_FNAME}"
      fi  # SUFIX1_FNAME}" != ""
    fi  # SUFIX2_FNAME}" != ""
  fi  # SUFIX3_FNAME}" != ""

#  if [ ${NFNAME} != "" ]; then
#    FNAME="${NFNAME}"
#  fi
  echo "  FNAME=${FNAME} SUFIX_FNAME=${SUFIX_FNAME} (SUFIX1_FNAME=${SUFIX1_FNAME} SUFIX2_FNAME=${SUFIX2_FNAME})"

  MANUFACTURER=`exif -x ${FNAME}| grep "Manufacturer"|cut -d\> -f2 |cut -d\< -f1`
  DATISTR=`exif -x ${FNAME}| grep "Date_and_Time__Original_"|cut -d\> -f2 |cut -d\< -f1|sed 's/^${YR}//g'|sed 's/ /-/g'|sed 's/://g'`

#  DATISTR=`exif -x ${FNAME}| grep "Date_and_Time__Original_"|cut -d\> -f2 |cut -d\< -f1|sed 's/^20//g'|sed 's/ /-/g'|sed 's/://g'`

  if [ "${MANUFACTURER}" = "Canon___" ]; then
# Mod. time (was still Summertime)
    DATISTR=`exif -x ${FNAME}| grep "Date_and_Time__Original_"|cut -d\> -f2 |cut -d\< -f1|sed 's/ /_/g'`
    DAY=`echo ${DATISTR}|cut -d\- -f1`
    HR=`echo ${DATISTR}|cut -d\- -f2|cut -d\: -f1`
    N_HR=`expr ${HR} - 1`
    MIN=`echo ${DATISTR}|cut -d\- -f2|cut -d\: -f2`
    SEC=`echo ${DATISTR}|cut -d\- -f2|cut -d\: -f3`
    DATISTR=`echo ${DAY}-${N_HR}:${MIN}:${SEC}|sed 's/://g'`
    echo "  DATISTR=${DATISTR} DAY=${DAY} HR=${HR} N_HR=${N_HR} MIN=${MIN} SEC=${SEC}"
  fi  # MANUFACTURER}" = "Canon___

# Shorten Y to y (^20yy -> yy) & - => _
  DATISTR=`echo "${DATISTR}"|sed 's/^20//g'|sed 's/-/_/g'`

  echo "    MANUFACTURER=${MANUFACTURER} DATISTR=${DATISTR}"

#  NEW_FNAME="${DATISTR}_`echo ${FNAME} |cut -d\_ -f2-`"
  NEW_FNAME="${DATISTR}-${SUFIX_FNAME}"
  echo "      ${FNAME} (${DATISTR}) => ${NEW_FNAME}"

  mv ${FNAME} ${NEW_FNAME}

done  # LINE


exit 0

