All pastes #509367 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-25 12:41 UTC
rendered paste body
#! /bin/sh

DIR="mygallery"
GEOM="200x200"
INMAX="5"

IMD=($*)
IMT=(png gif jpg jpeg PNG GIF JPG JPEG)

function trans()
{
  echo $1 | \
  tr -d '.' | \
  tr -d '/'
}

if [[ -z ${IMD[*]} ]]; then
  IMD=(`pwd`)
fi

if [[ -e $DIR ]]; then
  echo "gallery directory already exists"
  exit 1
fi

echo "starting..."

mkdir $DIR || exit 1

if [[ -e mylist ]]; then
  cp mylist $DIR/list
  echo "using custom image list"
fi

for D in ${IMD[*]}; do
  for I in ${IMT[*]}; do
    ls $D/*.$I >> $DIR/list 2> /dev/null
  done
done

cd $DIR

FNUM=1
LNUM=`cat list | wc -l`

MIN=`cat list | head -n 1`
MAX=`tac list | head -n 1`

for I in `cat list`; do
  echo -ne "\033[sgenerating page ${FNUM}/${LNUM}\033[u"
  FNUM=`echo "$FNUM + 1" | bc`

  N="`trans $I`.html"

  PREV=`grep -B 1 "$I" list | grep -v "$I"`
  NEXT=`grep -A 1 "$I" list | grep -v "$I"`

  echo -e "<html>\n<head>\n<title>$I</title>\n</head>\n<body>\n<p align='center'>\n<img src='$I' alt='$I' /><br />" > $N

  echo "<a href='`trans $MIN`.html'>first</a> " >> $N
  if [[ -n $PREV ]]; then
    echo "<a href='`trans $PREV`.html'>previous</a> " >> $N
  fi

  echo "<a href='index.html'>index</a> " >> $N
  
  if [[ -n $NEXT ]]; then
    echo "<a href='`trans $NEXT`.html'>next</a> " >> $N
  fi  
  echo "<a href='`trans $MAX`.html'>last</a>" >> $N
  
  echo -e "</p>\n</body>\n</html>" >> $N
done

echo

FNUM=1
COU=1
mkdir ./thumbs || exit 1

echo -e "<html>\n<head>\n<title>gallery index</title>\n</head>\n<body><p align='center'>gallery of ${IMD[*]}</p><p align='center'>" > index.html
for T in `cat list`; do
  echo -ne "\033[sindex thumbnail ${FNUM}/${LNUM}\033[u"
  FNUM=`echo "$FNUM + 1" | bc`

  cp $T ./thumbs/thumb_`trans $T`
  mogrify -geometry $GEOM ./thumbs/thumb_`trans $T`
  
  echo "<a href='`trans $T`.html'><img src='thumbs/thumb_`trans $T`' alt='thumbs/thumb_`trans $T`' /></a> " >> index.html

  if [[ $COU -eq $INMAX ]]; then
    echo "<br />" >> index.html
    COU=1
  else
    COU=`echo "$COU + 1" | bc`
  fi
done
echo -e "</p></body>\n</html>" >> index.html

rm list

echo
echo "done"
exit 0