#!/bin/sh
# Este es un pequeño script para generar los ficheros que distribuirán
# la documentación (zip, tar.gz o tar.bz2). Tremendamente no portable,
# llega a usar programas externos que quizás sólo tenga el autor :-)
# Pero como se supone que este no es un script público...
#  Grzegorz Adam Hankiewicz (gradha@iname.com)

# Variables con los nombres de los directorios
DIRLINUX=Allegro-es-4.0.1-alpha3
DIRDOS=allegres
DIRDOC=allegro

function archiva_fuente
{
   # Prelimpieza
   make veryclean
   
   # Generación de directorios
   mkdir ${DIRLINUX}
   mkdir ${DIRLINUX}/html
   mkdir ${DIRLINUX}/chm
   mkdir ${DIRLINUX}/info
   mkdir ${DIRLINUX}/obj
   mkdir ${DIRLINUX}/rtf
   mkdir ${DIRLINUX}/src
   mkdir ${DIRLINUX}/src/makedoc
   mkdir ${DIRLINUX}/texi
   mkdir ${DIRLINUX}/txt
   mkdir ${DIRLINUX}/build
   
   # Inserción de ficheros vacíos "por si acaso"
   echo nada > ${DIRLINUX}/html/nada
   echo nada > ${DIRLINUX}/chm/nada
   echo nada > ${DIRLINUX}/info/nada
   echo nada > ${DIRLINUX}/obj/nada
   echo nada > ${DIRLINUX}/rtf/nada
   echo nada > ${DIRLINUX}/texi/nada
   echo nada > ${DIRLINUX}/txt/nada
   
   # Copiamos la versión código fuente
   cp Makefile *.txt ${DIRLINUX}
   cp build/*.txt ${DIRLINUX}/build
   cp src/*._tx ${DIRLINUX}/src
   cp src/makedoc/*.[ch] ${DIRLINUX}/src/makedoc
   rm ${DIRLINUX}/pasos_para_release.txt
   
   # Archivamos formato unix
   arcdir -t tar.gz ${DIRLINUX}
   arcdir -t tar.bz2 ${DIRLINUX}

   # Convertimos al formato dos
#   recode lat1..437 ${DIRLINUX}/*.txt ${DIRLINUX}/Makefile
   find ${DIRLINUX} -type f -exec todos \{\} \;
   mv ${DIRLINUX} ${DIRDOS}
   
   # Contenido del fichero
   touch ${DIRDOS}/${DIRDOS}.mft
   find ${DIRDOS} | tac > ${DIRDOS}/${DIRDOS}.mft
   
   # Archivamos formato dos
   arcdir -t zip ${DIRDOS}
   
   # Transportamos ficheros al destino...
   mv ${DIRLINUX}.tar.gz ${DIRLINUX}.tar.bz2 ${DIRDOS}.zip ../web/ficheros
   rm -fR -- ${DIRDOS}

   make veryclean
}

function actualiza_web
{
   make veryclean

   # Ahora generamos la versión html lista para publicar
   make html
   cp --update html/*.html ../web/online/

   # Limpieza final...
   make veryclean
}

function archiva_docs
{
   make veryclean
   echo "" > tam

   for F in txt html rtf; do
      make ${F}
      mkdir ${DIRDOC}
      mkdir ${DIRDOC}/${F}
      (find ${F}/*;echo ${DIRDOC}/${F}) | grep -v nada | grep -v CVS | xargs cp
      for X in zip tar.gz tar.bz2; do
         arcdir -t ${X} ${DIRDOC}
         mv ${DIRDOC}.${X} ../web/ficheros/${DIRDOC}_${F}.${X}
      done
      rm -R ${DIRDOC}
   done

   for F in txt html rtf; do
      for X in zip tar.gz tar.bz2; do
         du -h ../web/ficheros/${DIRDOC}_${F}.${X} >> tam
      done
   done

   du -h ../web/ficheros/allegres.zip >> tam
   du -h ../web/ficheros/Allegro* >> tam

   make veryclean
   cat tam
   rm tam
}

function muestra_parametros
{
   echo "Usa los siguientes parámetros para ejecutar una función:"
   echo ""
   echo "archiva-fuente   Archiva el código fuente y lo copia"
   echo "actualiza-web    Copia ficheros html a la página web"
   echo "archiva-docs     Archiva documentos pregenerados y los copia"
}

llamadas=0

for par in $@;
do
   if [ ${par} == "archiva-fuente" ]; then
      archiva_fuente
      llamadas=llamadas+1
   fi
   if [ ${par} == "actualiza-web" ]; then
      actualiza_web
      llamadas=llamadas+1
   fi
   if [ ${par} == "archiva-docs" ]; then
      archiva_docs
      llamadas=llamadas+1
   fi
done

if [ ${llamadas} == 0 ]; then
   muestra_parametros
fi

