diff --git a/dyn-map/imgpublisher.sh b/dyn-map/imgpublisher.sh new file mode 100755 index 0000000..2d8a996 --- /dev/null +++ b/dyn-map/imgpublisher.sh @@ -0,0 +1,64 @@ +#!/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