This is a quick&dirty script that pushes pictures onto my web server, does some sensible resizing, and fixes up some igal stupidities on the way.

#!/bin/bash

# settings

LOCALBASEDIR=`echo "/home/user/photo"`
REMOTEBASEDIR=`echo "/home/apache/user/photos"`
HTMLBASE=`echo "http://www.user.invalid/photos"`
REMOTEHOST=`echo "www.user.invalid"`
QUALITY=`echo "60"`

CWD=`pwd`
echo -n "Input directory name: "
read DIRNAME
DIR=`echo "$LOCALBASEDIR/$DIRNAME"`
echo "Directory set to $DIR"

if [ -d "$DIR" ]; then
  echo "$DIR already exists. Exiting."
  exit `/bin/false`
fi

echo "$DIR does not exist. Attempting to create it..."
mkdir "$DIR" || exit `/bin/false`
cd "$DIR" || exit `/bin/false`
echo "$DIR created and cwd now"

gphoto2 -P && gphoto2 -D

for i in `ls -1 *.JPG`; do
  echo -n "downsizing $i.."
  BASE=`echo "$i" | sed s/"\.JPG"//g`
  convert -quality "$QUALITY" "$i" "$BASE.jpg"
  mv "$i" "$i.foo"
  echo "done."
done

echo " "
echo "running igal.."
igal -e jpg -as

echo " "
echo -n "fixing html-files.."
for i in `ls -1 *.html`; do
  cat "$i" | sed s/"width\=\ "//g | sed s/"height\=\ "//g >"$i.new"
  mv "$i.new" "$i"
done
echo "done."

set -e
DIRNAME=`pwd | sed s/".*\/"//g`
ssh -x "$REMOTEHOST" mkdir "$REMOTEBASEDIR/$DIRNAME"
scp *html .i* .s* .t* *.jpg "$REMOTEHOST:$REMOTEBASEDIR/$DIRNAME"

echo -n "cleaning up.."
rm *.jpg *.html .i* .s* .t*
for i in `ls -1 *.foo`; do
  NAME=`echo "$i" | sed s/"\.foo"//g`
  mv "$i" "$NAME"
done
echo "..done."

cd "$CWD"

echo " "
echo "copy/paste URL: $HTMLBASE/$DIRNAME/index.html"
echo " "

exit `/bin/true`