hyper-literate/collects/slatex/slatex-code/batconfg.lsp
Robby Findler 9e5d391dfb ...
original commit: 66a62c2f50bd2b8c85867be3e415c6a0b3881f20
2000-05-25 15:55:50 +00:00

198 lines
6.9 KiB
Common Lisp

;batconfg.lsp
;Configures SLaTeX batfile/shellscript (CL version)
;(c) Dorai Sitaram, Rice U., 1991, 1994
#+gcl
(or (find-package :slatex) (make-package :slatex))
#-gcl
(defpackage slatex (:use cl))
(set-dispatch-macro-character #\# #\t
#'(lambda (p ig ig2)
(declare (ignore ig ig2))
t))
(set-dispatch-macro-character #\# #\f
#'(lambda (p ig ig2)
(declare (ignore ig ig2))
nil))
(format t "~&Beginning configuring command script -- wait...")
(defvar *slatex-directory* (directory-namestring *load-pathname*))
(defvar *op-sys*)
(defvar cl-pathname)
(defvar slatex-pathname)
(defvar texinputs)
(defvar texinputs-list)
(defvar accepts-echo)
(defvar accepts-cmdline-file)
(defvar accepts-initfile)
(defvar system-procedure nil)
#+clisp
(setf system-procedure 'run-shell-command)
(with-open-file (inp (concatenate 'string *slatex-directory*
"config.dat")
:direction :input)
(read inp) ;we already know dialect
(setf *op-sys* (read inp)
cl-pathname (read inp)
slatex-pathname (read inp)
texinputs (read inp)
texinputs-list (read inp)
accepts-echo (read inp)
accepts-cmdline-file (read inp)
accepts-initfile (read inp)) )
(defvar bat-file)
(setf bat-file
(concatenate 'string *slatex-directory*
(case *op-sys*
((os2 os2fat) "slatex.cmd")
((windows dos) "slatex.bat")
(unix "slatex"))))
(unless (eq *op-sys* 'mac-os)
(if (probe-file bat-file) (delete-file bat-file)))
(defun princn (x o)
(princ x o)
(terpri o))
(defun n (o)
(terpri o))
(with-open-file
(o bat-file :direction :output)
(case *op-sys*
((unix)
(cond (accepts-echo
(princn "echo '" o)
(princ "(load " o)
(prin1 slatex-pathname o)
(princn ")" o)
(princ "(setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princn ")" o)
(princ "(setq slatex::*texinputs-list* `" o)
(prin1 texinputs-list o)
(princn ")" o)
(princ "(slatex::process-main-tex-file \"'$1'\")' | " o)
(princn cl-pathname o))
(accepts-cmdline-file
(princ "echo '(load " o)
(prin1 slatex-pathname o)
(princn ")' > Zslatex.jnk" o)
(princ "echo '(setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princn ")' >> Zslatex.jnk" o)
(princ "echo '(setq slatex::*texinputs-list* `" o)
(prin1 texinputs-list o)
(princn ")' >> Zslatex.jnk" o)
(princn "echo '(slatex::process-main-tex-file \"'$1'\")' >> Zslatex.jnk" o)
(princn "echo '(slatex::exit-scheme)' >> Zslatex.jnk" o)
(princ cl-pathname o)
(princ " " o)
(princ accepts-cmdline-file o)
(princn " Zslatex.jnk" o)
(princn "rm -f Zslatex.jnk" o))
(accepts-initfile
(princ "echo '(load " o)
(prin1 slatex-pathname o)
(princ ")' > " o)
(princn accepts-initfile o)
(princ "echo '(setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princ ")' >> " o)
(princn accepts-initfile o)
(princ "echo '(setq slatex::*texinputs-list* (quote " o)
(prin1 texinputs-list o)
(princ ")' >> " o)
(princn accepts-initfile o)
(princ "echo '(slatex::process-main-tex-file \"'$1'\")' >> " o)
(princn accepts-initfile o)
(princn cl-pathname o)
(princ "rm -f " o)
(princn accepts-initfile o)))
(princn "if test -f pltexchk.jnk" o)
(princn "then tex $1; rm pltexchk.jnk" o)
(princn "else latex $1" o)
(princn "fi" o))
((windows dos os2fat os2)
(princn "@echo off" o)
(cond (accepts-echo
(princ "echo (load " o)
(prin1 slatex-pathname o)
(princn ") > Zslatex.jnk" o)
(princ "echo (setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princn ") >> Zslatex.jnk" o)
(princ "echo (setq slatex::*texinputs-list* '" o)
(prin1 texinputs-list o)
(princn ") >> Zslatex.jnk" o)
(princn "echo (slatex::process-main-tex-file \"%1\") >> Zslatex.jnk" o)
(princn "echo (slatex::exit-scheme) >> Zslatex.jnk" o)
(princ "echo (load \"Zslatex.jnk\") | " o)
(princn cl-pathname o)
(princn "del Zslatex.jnk" o))
(accepts-cmdline-file
(princ "echo (load " o)
(prin1 slatex-pathname o)
(princn ") > Zslatex.jnk" o)
(princ "echo (setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princn ") >> Zslatex.jnk" o)
(princ "echo (setq slatex::*texinputs-list* '" o)
(prin1 texinputs-list o)
(princn ") >> Zslatex.jnk" o)
(princn "echo (slatex::process-main-tex-file \"%1\") >> Zslatex.jnk" o)
(princn "echo (slatex::exit-scheme) >> Zslatex.jnk" o)
(princ cl-pathname o)
(princ " " o)
(princ accepts-cmdline-file o)
(princn " Zslatex.jnk" o)
(princn "del Zslatex.jnk" o))
(accepts-initfile
(princ "echo (load " o)
(prin1 slatex-pathname o)
(princ ") > " o)
(princn accepts-initfile o)
(princ "echo (setq slatex::*texinputs* " o)
(prin1 texinputs o)
(princ ") >> " o)
(princn accepts-initfile o)
(princ "echo (setq slatex::*texinputs-list* '" o)
(prin1 texinputs-list o)
(princ ") >> " o)
(princn accepts-initfile o)
(princ "echo (slatex::process-main-tex-file \"%1\") >> " o)
(princn accepts-initfile o)
(princ "echo (slatex::exit-scheme) >> " o)
(princn accepts-initfile o)
(princn cl-pathname o)
(princ "del " o)
(princn accepts-initfile o)))
(princn "if exist pltexchk.jnk goto one" o)
(princn "goto two" o)
(princn ":one" o)
(princn "call tex %1" o)
(princn "del pltexchk.jnk" o)
(princn "goto end" o)
(princn ":two" o)
(princn "call latex %1" o)
(princn ":end" o))))
(format t "~&Finished configuring command script.~%")
(when (eq *op-sys* 'unix)
#+(or allegro clisp)
(run-shell-command "chmod +x slatex")
#+gcl
(system "chmod +x slatex")
#-(or gcl clisp)
(format t "~&Type (chmod +x slatex) on Unix command line~%"))