207 lines
7.5 KiB
Scheme
207 lines
7.5 KiB
Scheme
;batconfg.scm;-*-scheme-*-
|
|
;Configures SLaTeX batfile/shellscript (Scheme version)
|
|
;(c) Dorai Sitaram, Rice U., 1991, 1994
|
|
|
|
(display "Beginning configuring command script -- wait...")
|
|
(newline)
|
|
|
|
(define dialect 'forward)
|
|
(define *op-sys* 'forward)
|
|
(define scheme-pathname 'forward)
|
|
(define slatex-pathname 'forward)
|
|
(define texinputs 'forward)
|
|
(define texinputs-list 'forward)
|
|
(define accepts-echo 'forward)
|
|
(define accepts-cmdline-file 'forward)
|
|
(define accepts-initfile 'forward)
|
|
(define system-procedure #f)
|
|
|
|
(call-with-input-file "config.dat"
|
|
(lambda (ip)
|
|
(set! dialect (read ip))
|
|
(set! *op-sys* (read ip))
|
|
(set! scheme-pathname (read ip))
|
|
(set! slatex-pathname (read ip))
|
|
(set! texinputs (read ip))
|
|
(set! texinputs-list (read ip))
|
|
(set! accepts-echo (read ip))
|
|
(set! accepts-cmdline-file (read ip))
|
|
(set! accepts-initfile (read ip))
|
|
(cond ((or (eof-object? dialect)
|
|
(eof-object? *op-sys*)
|
|
(eof-object? scheme-pathname)
|
|
(eof-object? slatex-pathname)
|
|
(eof-object? texinputs)
|
|
(eof-object? texinputs-list)
|
|
(eof-object? accepts-echo)
|
|
(eof-object? accepts-cmdline-file)
|
|
(eof-object? accepts-initfile))
|
|
(error "config.dat has too few answers"))
|
|
((eof-object? (read ip)) #t)
|
|
(else (error "config.dat has too many answers")))))
|
|
|
|
(case dialect
|
|
((bigloo chez cscheme guile mzscheme scm stk)
|
|
(set! system-procedure 'system)))
|
|
|
|
(define bat-file 'forward)
|
|
|
|
(case *op-sys*
|
|
((os2 os2bat)
|
|
(set! bat-file "slatex.cmd"))
|
|
((windows dos)
|
|
(set! bat-file "slatex.bat"))
|
|
((unix)
|
|
(set! bat-file "slatex")))
|
|
|
|
;(if (memq *op-sys* '(unix windows dos os2fat os2)) ;why here?
|
|
|
|
(if (memq dialect '(bigloo chez cscheme guile mzscheme pcsge scm))
|
|
(if (file-exists? bat-file)
|
|
(delete-file bat-file)))
|
|
|
|
(define modified-newline newline)
|
|
|
|
(cond ((and (eq? dialect 'mzscheme)
|
|
(memq *op-sys* '(windows dos)))
|
|
(set! modified-newline
|
|
(let ((cr (integer->char 13))
|
|
(lf (integer->char 10)))
|
|
(lambda (o)
|
|
(display cr o)
|
|
(display lf o))))))
|
|
|
|
(define princn
|
|
(lambda (x o)
|
|
(display x o)
|
|
(modified-newline o)))
|
|
|
|
(call-with-output-file bat-file
|
|
(lambda (o)
|
|
(case *op-sys*
|
|
((unix)
|
|
(cond (accepts-echo
|
|
(princn "echo '" o)
|
|
(display "(load " o)
|
|
(write slatex-pathname o)
|
|
(princn ")" o)
|
|
(display "(set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(princn ")" o)
|
|
(display "(set! slatex::*texinputs-list* `" o)
|
|
(write texinputs-list o)
|
|
(princn ")" o)
|
|
(display "(slatex::process-main-tex-file \"'$1'\")' | " o)
|
|
(princn scheme-pathname o))
|
|
(accepts-cmdline-file
|
|
(display "echo '(load " o)
|
|
(write slatex-pathname o)
|
|
(princn ")' > Zslatex.jnk" o)
|
|
(display "echo '(set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(princn ")' >> Zslatex.jnk" o)
|
|
(display "echo '(set! slatex::*texinputs-list* `" o)
|
|
(write 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)
|
|
(display scheme-pathname o)
|
|
(display " " o)
|
|
(display accepts-cmdline-file o)
|
|
(princn " Zslatex.jnk" o)
|
|
(princn "rm -f Zslatex.jnk" o))
|
|
(accepts-initfile
|
|
(display "echo '(load " o)
|
|
(write slatex-pathname o)
|
|
(display ")' > " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo '(set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(display ")' >> " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo '(set! slatex::*texinputs-list* (quote " o)
|
|
(write texinputs-list o)
|
|
(display ")' >> " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo '(slatex::process-main-tex-file \"'$1'\")' >> " o)
|
|
(princn accepts-initfile o)
|
|
(princn scheme-pathname o)
|
|
(display "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
|
|
(display "echo (load " o)
|
|
(write slatex-pathname o)
|
|
(princn ") > Zslatex.jnk" o)
|
|
(display "echo (set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(princn ") >> Zslatex.jnk" o)
|
|
(display "echo (set! slatex::*texinputs-list* '" o)
|
|
(write 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)
|
|
(display "echo (load \"Zslatex.jnk\") | " o)
|
|
(princn scheme-pathname o)
|
|
(princn "del Zslatex.jnk" o))
|
|
(accepts-cmdline-file
|
|
(display "echo (load " o)
|
|
(write slatex-pathname o)
|
|
(princn ") > Zslatex.jnk" o)
|
|
(display "echo (set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(princn ") >> Zslatex.jnk" o)
|
|
(display "echo (set! slatex::*texinputs-list* '" o)
|
|
(write 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)
|
|
(display scheme-pathname o)
|
|
(display " " o)
|
|
(display accepts-cmdline-file o)
|
|
(display " Zslatex.jnk" o)
|
|
(princn "del Zslatex.jnk" o))
|
|
(accepts-initfile
|
|
(display "echo (load " o)
|
|
(write slatex-pathname o)
|
|
(display ") > " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo (set! slatex::*texinputs* " o)
|
|
(write texinputs o)
|
|
(display ") >> " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo (set! slatex::*texinputs-list* '" o)
|
|
(write texinputs-list o)
|
|
(display ") >> " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo (slatex::process-main-tex-file \"%1\") >> " o)
|
|
(princn accepts-initfile o)
|
|
(display "echo (slatex::exit-scheme) >> " o)
|
|
(princn accepts-initfile o)
|
|
(princn scheme-pathname o)
|
|
(display "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)))))
|
|
|
|
(display "Finished configuring batfile/shellscript")
|
|
(newline)
|
|
(if (eq? *op-sys* 'unix)
|
|
(case system-procedure
|
|
((system) (system "chmod +x slatex"))
|
|
(else
|
|
(display "Type (chmod +x slatex) on Unix command line")
|
|
(newline))))
|