home *** CD-ROM | disk | FTP | other *** search
- /*
- CheckHTML ARexx script for server side include (ssi) support
-
- Copyright © 1999 Dipl.-Inform. Kai Hofmann
- All rights reserved!
- Released without any explicit or implicit warranty!
-
- EMail: hofmann@hofmann-int.de
- WWW : http://www.hofmann-int.de/products/amiga/CheckHTML.shtml
-
- $VER: CheckHTML.rexx 1.0 (28.11.99)
-
- Param:
- - in file
- - out file
- - root directory
- */
-
- OPTIONS RESULTS
-
- PARSE ARG INFILENAME " " OUTFILENAME " " ROOT
- IF (OPEN(INFILE,INFILENAME,READ)) THEN DO
- IF (OPEN(OUTFILE,OUTFILENAME,WRITE)) THEN DO
- DO WHILE ~EOF(INFILE)
- line = READLN(INFILE)
- IF EOF(INFILE) THEN BREAK
- /* include ? */
- ipos = POS("<!--#include ",line)
- IF ipos = 0 THEN DO
- WRITELN(OUTFILE,line)
- END
- ELSE DO
- /* file or virtual ? */
- ipos = POS("file=",line)
- IF ipos = 0 THEN DO
- ipos = POS("virtual=",line)
- IF ipos = 0 THEN DO
- WRITELN(OUTFILE,line)
- SAY "ERROR: include syntax error:" line
- END
- ipos = ipos + 9
- END
- ELSE DO
- ipos = ipos + 6
- END
- /* get filename */
- length = POS('"',line,ipos+1) - ipos
- incfilename = SUBSTR(line,ipos,length)
- /* transform Unix to Amiga */
- IF LEFT(incfilename,1) == "/" THEN DO
- IF ROOT == "" THEN DO
- incfilename = DELSTR(incfilename,1,1)
- END
- ELSE DO
- IF RIGHT(ROOT,1) == "/" THEN DO
- ROOT = DELSTR(ROOT,LENGTH(ROOT),1)
- END
- incfilename = ROOT || incfilename
- END
- END
- ELSE DO
- ippos = LASTPOS("/",INFILENAME)
- IF ippos = 0 THEN DO
- ippos = LASTPOS(":",INFILENAME)
- IF ippos > 0 THEN DO
- incfilename = LEFT(INFILENAME,ippos) || incfilename
- END
- END
- ELSE DO
- incfilename = LEFT(INFILENAME,ippos) || incfilename
- END
- END
- ipos = POS("..",incfilename)
- DO WHILE ipos > 0
- incfilename = DELSTR(incfilename,ipos,2)
- ipos = POS("..",incfilename)
- END
- /* include file */
- IF (OPEN(incfile,incfilename,READ)) THEN DO
- DO WHILE ~EOF(incfile)
- line = READLN(incfile)
- IF EOF(incfile) THEN BREAK
- WRITELN(OUTFILE,line)
- END
- CLOSE(incfile)
- END
- ELSE DO
- WRITELN(OUTFILE,line)
- SAY "ERROR: Can not open" incfilename
- END
- END
- END
- CLOSE(OUTFILE)
- END
- ELSE DO
- SAY "ERROR: Can not open" OUTFILE
- END
- CLOSE(INFILE)
- END
- ELSE DO
- SAY "ERROR: Can not open" INFILE
- END
-