/*REXX*/ /* TRACE r */ /*---------------------------------------------------------------------------------- This REXX program will run in SPF as a .spf file or other REXX interpreter This program is used to change a DIR /S dump into a Google compliant XML sitemap.xml file Make sure that you use the CMD (Windows DOS) instead of COMMAND (emuulated DOS) as CMD will give long file names whereas COMMAND gives abbrieviated names that won't do you any good. To create the file: Clik Start, Select Run, enter CMD, press enter key, type: DIR Y:\dirname /S > c:\temp\to.htm OR to sort the directory lists type: DIR Y:\dirname /S /ON > c:\temp\to.htm RDOS macro command would look like: RDOS DIR h:\websites\manmrk /S /ON Save the result in the C:\TEMP\DRET.TXT using the Edit Create or Replace command To use this macro with SFPSE: 1. Create the User command dir2sitemap uncheck interpret, stop , batch 2. Cut/Paste this code to dir2sitemap.c macro Mark McDonald 20071114 ----------------------------------------------------------------------------------*/ /*--- Determine IF SPFPRO, SPFPC v4.x or Stand-alone REXX Interpreter ---*/ parse version name level date1 date2 date3 /*-- Determine which REXX interpreter is being used ---*/ TSPF = 0 /* Using a stand-alone REXX Interpreter */ IF date3 = 1995 THEN TSPF = 4 /* Using SPFPC v4 */ IF date3 = 1996 THEN TSPF = 5 /* Using SPFPRO */ IF date3 = 2007 THEN TSPF = 6 /* Using OOREXX */ /*--- Init Vars ---*/ TFILEIN = "C:\TEMP\DRET.TXT" TFILEOUT = "C:\TEMP\DRET.XML" T = " " /*--- Zero Out Destination File (Just in case) ---*/ CALL TOSCMD TSPF, ' ECHO S > 'TFILEOUT /*--- Write the HTML Header ---*/ TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,'- ') TR = LINEOUT(TFILEOUT,'- ') TR = LINEOUT(TFILEOUT,' http://www.YOURWEBSITE.net/ ') TR = LINEOUT(TFILEOUT,' 0.5 ') TR = LINEOUT(TFILEOUT,' 2007-11-14T00:58:18+00:00 ') TR = LINEOUT(TFILEOUT,' daily ') TR = LINEOUT(TFILEOUT,' ') /*--- Main Loop ---*/ DO WHILE LINES(TFILEIN) > 0 T = LINEIN(TFILEIN) /*--- Start url ---*/ IF SUBSTR(T,2,13) = "Directory of" THEN DO TPREFIX = SUBSTR(T,15) TPREFIX = TRANSLATE(TPREFIX,'\','/') END /*--- Create Navigation Link ---*/ IF POS('.HTM',TRANSLATE(SUBSTR(T,40)),1) > 0 | POS('.HTML',TRANSLATE(SUBSTR(T,40)),1) > 0 THEN DO TR = LINEOUT(TFILEOUT,'- ') TR = LINEOUT(TFILEOUT,' 'TPREFIX'/'SUBSTR(T,40)'') TR = LINEOUT(TFILEOUT,' 'SUBSTR(T,7,4)'-'SUBSTR(T,1,2)'-'SUBSTR(T,4,2)'T'SUBSTR(T,13,2)':'SUBSTR(T,16,2)':00+00:00') TR = LINEOUT(TFILEOUT,' daily') TR = LINEOUT(TFILEOUT,' ') END END /*--- Write Footer ---*/ TR = LINEOUT(TFILEOUT,'') /*--- Close File ---*/ TR = LINEOUT(TFILEOUT) TR = LINEOUT(TFILEIN) /*--- End Program ---*/ exit (0) /*-- Pass Command to OS -----------------------------------------------------------------------------*/ TOSCMD: PROCEDURE PARSE ARG TSPF, TCMD IF TSPF = 0 THEN ADDRESS COMMAND TCMD /*DOSREXX*/ IF (TSPF = 4 | TSPF = 5) THEN ADDRESS DOS TCMD /*SPFPC4/SPFPRO - Delete if using OOREXX*/ IF TSPF = 6 THEN TCMD /*OOREXX*/ RETURN /*---------------------------------------------------------------------------------------------------*/