#!/bin/bash

function stamp {
  # Stamp file with number
  if [ ! -e tmp/$2.pdf -o tmp/$2.pdf -ot "$1" ]; then
    echo "stamp $1 $2"
    echo -e ".sp 2\n.ps 20\n#$2" | groff - | ps2pdf - stamp_number.pdf
    pdftk "$1" stamp stamp_number.pdf output tmp/$2.pdf
    rm stamp_number.pdf
  else
    echo "skip $1 $2"
  fi
}


function merge {
  # Merge files in tmp
  files=`ls -1 $1/* | sort -n`
  pdftk $files cat output $2
}


stampno=0
index1=0
index2=0
dir=`basename "${PWD}"`
outfile=$dir.pdf
rm -f $outfile || exit 1
mkdir -p tmp
for i in *.pdf; do
  if a=`expr "$i" : '\([0-9]*\)_[0-9]*_[0-9]*.*'`; then
    if [ $a -gt $stampno ]; then
      stampno=$a
    fi
    stamp $i $a
    files1[$index1]=$i
    index1=`expr $index1 + 1`
  else
    files2[$index2]=$i
    index2=`expr $index2 + 1`
  fi
done
for i in $(seq 0 $((${#files2[@]} - 1))); do
  stampno=`expr $stampno + 1`
  stamp "${files2[$i]}" $stampno
done
# Merge all files in tmp
merge tmp $outfile

