home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 45
/
Amiga_Dream_45.iso
/
Amiga
/
Magazine
/
Dossier-LaTeX
/
AmiWeb2C.lha
/
web2c61
/
rexx
/
MakeTeXFont.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1995-04-09
|
6KB
|
282 lines
/* This ARexx program was automatically created by NUWEB.
Do not edit by hand! */
FONTSDIR = "TeXMF:fonts"
SOURCEDIR = FONTSDIR || "/source"
GFDIR = FONTSDIR || "/gf"
PKDIR = FONTSDIR || "/pk"
TFMDIR = FONTSDIR || "/tfm"
LOGDIR = FONTSDIR || "/log"
MASTERLOG = LOGDIR || "/MakeTeXFont.log" /* Main logfile */
REXXDIR = "TeXMF:web2c61/rexx"
VIRMF = "VirMF"
GFTOPK = "GFtoPK"
BASE = "plain"
KEEPGFFILES = 0
Signal On BREAK_C
Signal On BREAK_D
Address COMMAND
DUMMY = Time("Reset")
Parse Arg FONTNAME DPI HBASE VBASE DRIVER PKFILEARG PKDIRARG .
LOGSTRING = "Making font" FONTNAME "at" DPI "dpi and base"
LOGSTRING = LOGSTRING || " ("HBASE","VBASE")"
Say LOGSTRING
CURGFFILENAME = FONTNAME || "." || DPI || "gf"
CURPKFILENAME = FONTNAME || "." || DPI || "pk"
CURLOGFILENAME = FONTNAME || ".log"
CURTFMFILENAME = FONTNAME || ".tfm"
LOGFILENAME = FONTNAME || "." || DPI || "log"
Call SafeMakeDir(LOGDIR)
Call SafeMakeFile(MASTERLOG)
Call SafeMakeDir(PKDIR)
Call SafeMakeDir(TFMDIR)
If 0 ~= KEEPGFFILES Then
Call SafeMakeDir(GFDIR)
MODE = Left(PKDIRARG,LastPos("/",PKDIRARG)-1)
MODE = SubStr(MODE,LastPos("/",MODE)+1)
MAG = DPI / HBASE
MFOPTIONS = "\mode="MODE"; mag="MAG"; scrollmode; input" FONTNAME
Say "Calling MetaFont with base: &"BASE "and startup commands:"
Say "`"MFOPTIONS"'"
If ~Exists(CURGFFILENAME) Then
VIRMF '&'BASE '"'MFOPTIONS'"'
Else RC = 0 /* Simulate a perfect result */
ERRORCODE = RC
If 5 >= ERRORCODE Then Do
If 0 < ERRORCODE Then
Call Error
Else
Say FONTNAME "translated without errors."
End; Else Do
Call Error
Exit 0
End
GFTOPK CURGFFILENAME
If Exists(CURPKFILENAME) Then Do
If 0 = KEEPGFFILES Then
Delete CURGFFILENAME
FileNote CURPKFILENAME '"mode='MODE', mag='MAG'"'
End; Else Do
Call Log("Where is my "CURPKFILENAME"?")
Exit 5
End
If ~Open('LOGFILE',CURLOGFILENAME,'READ') Then Do
Call Log("Can't open "CURLOGFILENAME"!")
Exit 10
End
LINE = ReadLn('LOGFILE') /* Dummy read the first intro line */
LINE = ReadLn('LOGFILE') /* Dummy read the second calling line */
LINE = ReadLn('LOGFILE') /* Read the third line for real */
SOURCEFILE = Word(LINE,1) /* The `driver' file is what we want */
If ~Close('LOGFILE') Then Do
Call Log("Can't close "CURLOGFILENAME"!")
Exit 10
End
SUPPLIER = SubStr(SOURCEFILE,Length(SOURCEDIR)+2)
/* `+1' for the open brace and `+1' for the leftmost slash */
SUPPLIER = Left(SUPPLIER,LastPos("/",SUPPLIER)-1)
TYPEFACE = SubStr(SUPPLIER,LastPos("/",SUPPLIER))
SUPPLIER = Left(SUPPLIER,LastPos("/",SUPPLIER)-1)
LOGDIR = LOGDIR || SUPPLIER
Call SafeMakeDir(LOGDIR)
LOGDIR = LOGDIR || TYPEFACE
Call SafeMakeDir(LOGDIR)
LOGDIR = LOGDIR || "/" || MODE
Call SafeMakeDir(LOGDIR)
LOGDIR = LOGDIR || "/dpi" || DPI
Call SafeMakeDir(LOGDIR)
LOGFILENAME = LOGDIR || "/" || LOGFILENAME
Copy CURLOGFILENAME LOGFILENAME clone
Delete CURLOGFILENAME
TFMDIR = TFMDIR || SUPPLIER
Call SafeMakeDir(TFMDIR)
TFMDIR = TFMDIR || TYPEFACE
Call SafeMakeDir(TFMDIR)
TFMFILENAME = TFMDIR || "/" || CURTFMFILENAME
If ~Exists(TFMFILENAME) Then Do
Copy CURTFMFILENAME TFMFILENAME clone
Protect TFMFILENAME r
End
Delete CURTFMFILENAME
PKDIR = PKDIR || SUPPLIER
Call SafeMakeDir(PKDIR)
PKDIR = PKDIR || TYPEFACE
Call SafeMakeDir(PKDIR)
PKDIR = PKDIR || "/" || MODE
Call SafeMakeDir(PKDIR)
PKDIR = PKDIR || "/dpi" || DPI
Call SafeMakedir(PKDIR)
PKFILENAME = PKDIR || "/" || CURPKFILENAME
If Exists(PKFILENAME) Then Do
LOGSTRING = PKFILENAME
LOGSTRING = LOGSTRING "already exists;" '0A'X
LOGSTRING = LOGSTRING "check your driver's configuration!"
Say LOGSTRING
Call Log(LOGSTRING)
Delete CURPKFILENAME
Exit 5
End
Copy CURPKFILENAME PKFILENAME clone
Delete CURPKFILENAME
Protect PKFILENAME r
If 0 ~= KEEPGFFILES Then Do /* Optionally store GF files */
GFDIR = GFDIR || SUPPLIER
Call SafeMakeDir(GFDIR)
GFDIR = GFDIR || TYPEFACE
Call SafeMakeDir(GFDIR)
GFDIR = GFDIR || "/" || MODE
Call SafeMakeDir(GFDIR)
GFDIR = GFDIR || "/dpi" || DPI
Call SafeMakedir(GFDIR)
GFFILENAME = GFDIR || "/" || CURGFFILENAME
If Exists(GFFILENAME) Then Do
LOGSTRING = GFFILENAME
LOGSTRING = LOGSTRING "already exists;" '0A'X
LOGSTRING = LOGSTRING "check your driver's configuration!"
Say LOGSTRING
Call Log(LOGSTRING)
Delete CURGFFILENAME
Exit 5
End
Copy CURGFFILENAME GFFILENAME clone
Delete CURGFFILENAME
Protect GFFILENAME r
End
ELAPSED = Time("ELAPSED")
LOGSTRING = "created in "ELAPSED%3600
LOGSTRING = LOGSTRING || ":"Right(ELAPSED%60//60,2,'0')
LOGSTRING = LOGSTRING || ":"Right(ELAPSED%1//60,2,'0')
Call Log(LOGSTRING)
Exit 0 /* This is the end */
BREAK_C:
BREAK_D:
Call Log "Execution aborted!"
If Exists(CURGFFILENAME) Then
Delete CURGFFILENAME
If Exists(CURLOGFILENAME) Then
Delete CURLOGFILENAME
Exit 10
Log: Procedure Expose MASTERLOG FONTNAME MODE HBASE VBASE DPI MAG
Parse Arg MSG
MESSAGE = Date() Time() || ":"
MESSAGE = MESSAGE FONTNAME "for" MODE
MESSAGE = MESSAGE "("HBASE","VBASE") with" DPI "dpi"
MESSAGE = MESSAGE "(mag="MAG")" '0A'X
MESSAGE = MESSAGE || MSG
Say MESSAGE
If ~Open(LOGFILE,MASTERLOG,'Append') Then Do
Say "Can't open logfile!"
Return
End
DUMMY = WriteLn(LOGFILE,MESSAGE)
If ~Close(LOGFILE) Then
Say "Can't close logfile!"
Return
Error:
Say "Translation problem, MetaFont returned "ERRORCODE"."
Call Log("Translation problem, MetaFont returned "ERRORCODE".")
Return
MyGetEnv: Procedure
Parse Arg NAME
If Open(TEMPFILE,"ENV:"||NAME,'READ') Then Do
GIVES = Readln(TEMPFILE)
Call Close TEMPFILE
End; Else
GIVES = ""
Return GIVES
SafeMakeDir: Procedure
Parse Arg DIRNAME
If ~Exists(DIRNAME) Then Do
MakeDir DIRNAME
If ~Exists(DIRNAME) Then Do
Call Log("Could not create directory" DIRNAME)
Exit 10
End
Say "Directory ("DIRNAME") did not exist. It was created."
End
Return
SafeMakeFile: Procedure
Parse Arg FILENAME
If ~Exists(FILENAME) Then Do
"echo >" || FILENAME
If ~Exists(FILENAME) Then Do
Call Log("Could not create file="FILENAME)
Exit 10
End
Say "File ("FILENAME") did not exist. It was created."
End
Return