Newer
Older
Loremap / dyn-map / imgpublisher.sh
#!/bin/sh
# Resize/Wartermarking/committing to repo
# Usage:
#	$0 [Options]
# Call this script on jpeg files directory

myname=`basename $0`
mybase=${myname%.*}
tmpdir=${TMPDIR:-/tmp}/$mybase
logodir=$tmpdir/logo
repodir=$tmpdir/photorepo
year=`gdate -d '3 months ago' +%Y`
sz=1280
pwd=$PWD

finalize() {
  test -w "$pwd" && cd $pwd/.. && rm -rf $pwd
}
trap finalize INT QUIT TERM EXIT HUP

test -d $repodir || test -w $repodir || {
    echo "Please prepare repository directory before hand in $repodir"
    exit 2
  }

while getopts s:y:l: i; do
  case $i in
    s)	sz=$OPTARG ;;
    y)	year=$OPTARG ;;
    l)	lat=${OPTARG%,*}
	lon=${OPTARG#*[, ]}
	if [ "$lat" -lt 20 -o "$lat" -gt 50 \
		    -o "$lon" -lt 120 -o "$lon" -gt 150 ]; then
	  lon="" lat=""		#  Is not Japan, maybe
	fi
  esac
done
shift $((OPTIND - 1))
imgdir=$repodir/$year

{			# Pipe to logger below
  ls -lF
  echo `date`: Start job
  (cd $imgdir; git pull)
  logo=$logodir/watermark.png
  for f in *.jpg; do
    if [ -n "$lat" -a -n "$lon" ] && type exiftool >/dev/null 2>&1; then
      exiftool -gpslatitude="$lat" -gpslatitudeRef=N \
	       -gpslongitude="$lon" -gpslongitudeRef=E $f
    fi
    mogrify -resize ">${sz}x${sz}" $f
    ls -lF
    if [ -s $logo ]; then
      composite -dissolve 50% -gravity SouthWest $logo $f $imgdir/$f
    else
      cp $f $imgdir
    fi
  done && (
  cd $imgdir
  git add .
  git commit -m "AutoCommit via $myname at `date '+%F %T'`"
  git push
  echo `date`: Finish job
  )} 2>&1 | tee -a $tmpdir/logfile