#!/bin/bash
################################################################################
# Fichier : makedoc.sh
# Auteur  : Sebastien Beaugrand
# Date    : 20 Nov 2009
# Url     : http://beaugrand.chez.com/
################################################################################

readOptions()
{
  texprog=2
  spell=n
  if (grep "a5paper" "$name.tex" 2> /dev/null); then
    book=
  else
    book=n
  fi

  for ac_option
  do
    case "$ac_option" in
    -b | -book | --book)
      book=o ;;
    -h | -help | --help)
    cat << EOF
Usage: ${0##*/} [options] <tex-file>
Options:
  -b, --book    faire un livret avec le prefixe livret_
  -h, --help    cette aide
  -i            mode interactif
  -n, --nobook  ne pas faire de livret
  -s, --spell   verifier l'orthographe
EOF
      exit 0 ;;
    -i)
      texprog=
      spell=
      book=
      ;;
    -n | -nobook | --nobook)
      book=n ;;
    -s | -spell | --spell)
      spell=o ;;
    *)
      filename="$ac_option" ;;
    esac
  done
}

readOptions $*  # Une premiere fois pour avoir le nom du fichier

if [ ! -f "$filename" ]; then
        echo "$filename: Aucun fichier"
  exit -1
fi
ext=${filename##*.}
if [ "$ext" != tex ]; then
  echo "$filename: Mauvaise extention"
  exit -1
fi
name=${filename%.tex}

readOptions $*  # Une seconde fois pour les options dependantes du fichier

modesfile=/usr/share/texmf/metafont/misc/modes.mf
if [ -f $modesfile ]; then
  echo
  echo "info: "`grep "localfont := " $modesfile`" in $modesfile"
  echo
fi

if [ -z "$spell" ]; then
  echo -n "orthographe ? (o/N) "
  read spell
  if [ -z "$spell" ]; then
    spell=n
  fi
fi
if [ "$spell" = o ]; then
  aspell -d francais -p "$name.dic" -t -c "$name.tex"
fi

if [ -z "$texprog" ]; then
  echo -ne\
    "(1) postscript\n(2) pdf pdflatex\n(3) pdf dvipdf\n[1] "
  read texprog
  if [ -z "$texprog" ]; then
    texprog=1
  fi
fi
case $texprog in
  1) latex    --halt-on-error "$name.tex" ; dvips -o "$name.ps"  "$name.dvi" ;;
  2) pdflatex --halt-on-error "$name.tex" ;;
  3) latex    --halt-on-error "$name.tex" ; dvipdf   "$name.dvi" "$name.pdf" ;;
esac

if [ -z "$book" ]; then
  echo -n "livret ? (o/N) "
  read book
  if [ -z "$book" ]; then
    book=n
  fi
fi
if [ "$book" = o ]; then
  if [ $texprog = 1 ]; then
    psbook "$name.ps" | psnup -2 |\
      pstops "2:0,1U(21cm,29.7cm)" > "livret_$name.ps"
  else
    pdfbook -2 "$name.pdf" "livret_$name.pdf"
  fi
fi

rm -f "$name.log" "$name.dvi"

# Fin du fichier makedoc.sh