home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Resources
/
Online
/
CheckHTML
/
rexx
/
CheckHTML.rexx
Wrap
OS/2 REXX Batch file
|
1999-12-05
|
3KB
|
103 lines
/*
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