144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/sh
 | 
						||
################################################################################################
 | 
						||
## 
 | 
						||
##  Nom: compile_latex 
 | 
						||
##
 | 
						||
##  Licence: Creative Commons
 | 
						||
##
 | 
						||
##  Comportement: Compilation d'un fichier tex, suppression des fichiers temp et affichage du pdf
 | 
						||
##
 | 
						||
##
 | 
						||
##
 | 
						||
################################################################################################
 | 
						||
##
 | 
						||
##  Date de création: 26/01/2011
 | 
						||
##
 | 
						||
##  Auteur: Gardouille
 | 
						||
##
 | 
						||
##
 | 
						||
##  Dernière modifications:
 | 
						||
##  27/01/2011: - Ajout de la possibilité de choisir entre supprimer/déplacer fichiers temp
 | 
						||
##
 | 
						||
# **********************************************************************************************
 | 
						||
##  Modifications à apporter:
 | 
						||
##              - Faire une gestion en fonction du nombre d'argument
 | 
						||
##              - Découper le programme principal en différentes fonctions
 | 
						||
##              - 
 | 
						||
# **********************************************************************************************
 | 
						||
##
 | 
						||
##
 | 
						||
##
 | 
						||
################################################################################################
 | 
						||
 | 
						||
 | 
						||
 | 
						||
# **********************************************************************************************
 | 
						||
# 
 | 
						||
# Variables globales
 | 
						||
# 
 | 
						||
# ----------------------------------------------------------- 
 | 
						||
# Variable qui permet d'indiquer si il faut supprimer les fichiers temporaires
 | 
						||
# 0 = suppression
 | 
						||
rm_file="0"
 | 
						||
 | 
						||
# Variable qui permet d'indiquer si il faut déplacer les fichiers temporaires dans un sous dossier au nom du fichier à compiler
 | 
						||
# 0 = déplacer
 | 
						||
mv_file="1"
 | 
						||
 | 
						||
# Fin des variables globales
 | 
						||
# -----------------------------------------------------------
 | 
						||
# **********************************************************************************************
 | 
						||
 | 
						||
 | 
						||
# **********************************************************************************************
 | 
						||
# 
 | 
						||
# Fichiers globaux
 | 
						||
# 
 | 
						||
# -----------------------------------------------------------
 | 
						||
# 
 | 
						||
log="`pwd`/compile.log"
 | 
						||
# Fin des fichierss globaux
 | 
						||
# -----------------------------------------------------------
 | 
						||
# **********************************************************************************************
 | 
						||
 | 
						||
 | 
						||
# **********************************************************************************************
 | 
						||
# 
 | 
						||
# Fonctions globales
 | 
						||
# 
 | 
						||
# -----------------------------------------------------------
 | 
						||
# Divers echos ...
 | 
						||
echoi() { echo " (ii) $*" >> "${log}" ; }
 | 
						||
echok() { echo " (ok) $*" >> "${log}" ; }
 | 
						||
echow() { echo " (!!) $*" >> "${log}" ; }
 | 
						||
echnk() { echo " (EE) $*" >> "${log}" ; }
 | 
						||
 | 
						||
# Fin des fonctions globales
 | 
						||
# -----------------------------------------------------------
 | 
						||
# **********************************************************************************************
 | 
						||
 | 
						||
 | 
						||
 | 
						||
# **********************************************************************************************
 | 
						||
# 
 | 
						||
# Programme principale
 | 
						||
# 
 | 
						||
# -----------------------------------------------------------
 | 
						||
 | 
						||
# Suppression du fichier de log si présent:
 | 
						||
[ -f "${log}" ] && rm -f "${log}"                                                                                                                                       
 | 
						||
 | 
						||
case "$1" in # gestion du premier argument
 | 
						||
  *.tex ) # Si le premier argument est bien un fichier .tex
 | 
						||
    # On vérifie que le fichier existe bien:
 | 
						||
    [ ! -f "$1" ] && echo "Erreur, le fichier passé en paramètre n'existe pas. Vérifier son orthographe et son emplacement, merci." && exit 1
 | 
						||
    # On récupère le nom du fichier:
 | 
						||
    file=`echo "$1" | sed -e "s/.tex//g"`
 | 
						||
 | 
						||
    # On compile le document en pdf en rediregeant la sortie standart et les erreurs vers le fichier de log
 | 
						||
    pdflatex "$1" > "${log}" 2>> "${log}"
 | 
						||
    if [ $? -eq "0" ] # Si la compilation s'est bien déroulée
 | 
						||
    then
 | 
						||
      echo "Compilation terminée sans erreur"
 | 
						||
    else
 | 
						||
      echo "Il y a eu un problème lors de la compilation, veuillez prendre note du fichier de log: ${log}"
 | 
						||
      echo "Il y a également les fichiers crées pendant la compilation qui pourront vous aider."
 | 
						||
      exit 2
 | 
						||
    fi
 | 
						||
 | 
						||
    if [ ${rm_file} -eq "0" ] # Si il faut supprimer les fichiers temp
 | 
						||
    then
 | 
						||
      # Suppression des fichiers temporaires crées pour la compilation:
 | 
						||
      rm -rf "${file}".aux "${file}".log >> "${log}" 2>> "${log}"
 | 
						||
    elif [ ${mv_file} -eq "0" ] # Si il faut déplacer les fichiers temp
 | 
						||
    then
 | 
						||
      # Nouveau dossier au nom du fichier à compiler
 | 
						||
      mkdir "${file}"
 | 
						||
      # Déplacer les fichiers temporaires
 | 
						||
      mv "${file}".aux "${file}".log "${file}"/
 | 
						||
    fi
 | 
						||
 | 
						||
    # Affichage du pdf:
 | 
						||
    evince "${file}".pdf &
 | 
						||
 | 
						||
    echo "good"
 | 
						||
    exit 0
 | 
						||
    ;;
 | 
						||
  h|help ) # Si une l'aide est demandée
 | 
						||
    echo "Aide en cours de rédac =)"
 | 
						||
    exit 0
 | 
						||
    ;;
 | 
						||
  * ) # Sinon
 | 
						||
    echo "Erreur. Utilisation:"
 | 
						||
    echo "compile_latex fichier.tex"
 | 
						||
    exit 1
 | 
						||
    ;;
 | 
						||
esac
 | 
						||
 | 
						||
exit 0
 | 
						||
 | 
						||
# Fin de la boucle principale
 | 
						||
# -----------------------------------------------------------
 | 
						||
# **********************************************************************************************
 | 
						||
 |