![]() |
| |||||||
| S'inscrire | FAQ | Membres | Calendrier | Recherche | Messages du jour | Marquer les forums comme lus |
![]() |
| LinkBack | Outils de la discussion | Modes d'affichage |
| |||
| Bonjour, Je voudrais décomposer la compilation successive effectuée par une seule commande bash en plusieurs compilations élémentaires. Par exemple: je voudrais remplacer la commande latex toto.tex && { if [[ -f toto.asy ]]; then asy toto.asy &&\ latex toto.tex >/dev/null ; else true; fi;} &&\ dvips toto.dvi -o toto.ps && gv toto.ps en la suite de commandes latex toto.tex asy toto.asy latex toto.tex >/dev/null dvips toto.dvi -o toto.ps gv toto.ps avec les tests qui conviennent en Elisp, tout ça en gardant la gestion des erreurs fournie par la fonction '(compile)'. Le but est de faire un enchaînement de commandes indépendant du shell et fonctionnant aussi sous Windows; une sorte de 'makefile' en Elisp. La solution consistant à faire un 'makefile' et un .bash ne me semble pas viable puisque, par exemple, la commande 'gv' est paramétrable par l'utilisateur. Avant de me lancer dans un fork de (compile) je voudrais savoir s'il existe déjà une solution simple. -- Merci de votre aide, Philippe Ivaldi. http://piprim.tuxfamily.org/ |
| | ||||
| ||||
| |
| |||
| > Je voudrais décomposer la compilation successive effectuée par une > seule commande bash en plusieurs compilations élémentaires. Voici une version simplifiée de ce que j'ai pondu: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (defun asy-compilation-wait(&optional auto-close) (let* ((buff (get-buffer "*asy-compilation*")) (comp-proc (get-buffer-process buff))) (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) (setq comp-proc (get-buffer-process buff)) (sit-for 1)) (if comp-proc (setq asy-last-compilation-code (process-exit-status comp-proc)) (setq asy-last-compilation-code 0)))) (defun asy-internal-compile (command &optional auto-close) (setq asy-last-compilation-code -1) (let ((compilation-buffer-name-function (lambda (mj) "*asy-compilation*"))) (compile command)) (asy-compilation-wait auto-close)) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ Ça s'utilise comme ça: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (asy-internal-compile (concat "latex -interaction=nonstopmode " b-b-n ".tex")) (when (and (zerop asy-last-compilation-code) (file-readable-p (concat b-b-n ".asy"))) (asy-internal-compile (concat asy-command-location lasy-command " " b-b-n ".asy" dirstderr)) (when (zerop asy-last-compilation-code) (asy-internal-compile (concat "latex -interaction=nonstopmode " b-b-n ".tex")))) (when (zerop asy-last-compilation-code) (asy-internal-compile (concat "dvips " b-b-n ".dvi -o " b-b-n ".ps") t) (when (zerop asy-last-compilation-code) (start-process "" nil ps-view-command (concat b-b-n ".ps")))) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ Y-a-t-il mieux que 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) (setq comp-proc (get-buffer-process buff)) (sit-for 1)) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ pour attendre qu'un processus se termine et récupérer le code de sortie ? -- Philippe Ivaldi. http://piprim.tuxfamily.org/ |
| |||
| > Je voudrais décomposer la compilation successive effectuée par une > seule commande bash en plusieurs compilations élémentaires. Voici une version simplifiée de ce que j'ai pondu: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (defun asy-compilation-wait(&optional auto-close) (let* ((buff (get-buffer "*asy-compilation*")) (comp-proc (get-buffer-process buff))) (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) (setq comp-proc (get-buffer-process buff)) (sit-for 1)) (if comp-proc (setq asy-last-compilation-code (process-exit-status comp-proc)) (setq asy-last-compilation-code 0)))) (defun asy-internal-compile (command &optional auto-close) (setq asy-last-compilation-code -1) (let ((compilation-buffer-name-function (lambda (mj) "*asy-compilation*"))) (compile command)) (asy-compilation-wait auto-close)) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ Ça s'utilise comme ça: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (asy-internal-compile (concat "latex -interaction=nonstopmode " b-b-n ".tex")) (when (and (zerop asy-last-compilation-code) (file-readable-p (concat b-b-n ".asy"))) (asy-internal-compile (concat asy-command-location lasy-command " " b-b-n ".asy" dirstderr)) (when (zerop asy-last-compilation-code) (asy-internal-compile (concat "latex -interaction=nonstopmode " b-b-n ".tex")))) (when (zerop asy-last-compilation-code) (asy-internal-compile (concat "dvips " b-b-n ".dvi -o " b-b-n ".ps") t) (when (zerop asy-last-compilation-code) (start-process "" nil ps-view-command (concat b-b-n ".ps")))) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ Y-a-t-il mieux que 8<------8<------8<------8<------8<------8<------8<------8<------8<------ (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) (setq comp-proc (get-buffer-process buff)) (sit-for 1)) 8<------8<------8<------8<------8<------8<------8<------8<------8<------ pour attendre qu'un processus se termine et récupérer le code de sortie ? -- Philippe Ivaldi. http://piprim.tuxfamily.org/ |
| |||
| Ph. Ivaldi wrote: > Y-a-t-il mieux que > > 8<------8<------8<------8<------8<------8<------8<------8<------8<------ > (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) > (setq comp-proc (get-buffer-process buff)) > (sit-for 1)) > 8<------8<------8<------8<------8<------8<------8<------8<------8<------ > > pour attendre qu'un processus se termine et récupérer le code de > sortie ? C'est l'utilisation standard de (sit-for 1). A.O. |
| |||
| Ph. Ivaldi wrote: > Y-a-t-il mieux que > > 8<------8<------8<------8<------8<------8<------8<------8<------8<------ > (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) > (setq comp-proc (get-buffer-process buff)) > (sit-for 1)) > 8<------8<------8<------8<------8<------8<------8<------8<------8<------ > > pour attendre qu'un processus se termine et récupérer le code de > sortie ? C'est l'utilisation standard de (sit-for 1). A.O. |
| |||
| Le 04 juin 2007, Olivier écrivit : >> Y-a-t-il mieux que >> (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) >> (setq comp-proc (get-buffer-process buff)) >> (sit-for 1)) >> pour attendre qu'un processus se termine et récupérer le code de >> sortie ? > > C'est l'utilisation standard de (sit-for 1). Ça me rassure, je n'étais pas sûr de moi. Merci. -- Philippe Ivaldi. http://piprim.tuxfamily.org/ |
| |||
| Le 04 juin 2007, Olivier écrivit : >> Y-a-t-il mieux que >> (while (and comp-proc (not (eq (process-status comp-proc) 'exit))) >> (setq comp-proc (get-buffer-process buff)) >> (sit-for 1)) >> pour attendre qu'un processus se termine et récupérer le code de >> sortie ? > > C'est l'utilisation standard de (sit-for 1). Ça me rassure, je n'étais pas sûr de moi. Merci. -- Philippe Ivaldi. http://piprim.tuxfamily.org/ |
| |
| |
![]() |
| Tags: compilations, successives |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Re: Sur le nombre de compilations nécessaires | Jean Magnan de Bornier | Newsgroup fr.comp.text.tex | 5 | 15/05/2008 16h10 |
| procedures compilations | christophe | Newsgroup microsoft.public.fr.sqlserver | 1 | 16/11/2007 08h43 |
| Re: PB classement compilations/best-of | Le Claude | Newsgroup microsoft.public.fr.windowsmedia | 0 | 28/12/2006 20h53 |