/*REXX*/ 'ISREDIT MACRO(PARMS)' /* TRACE ?r */ /*---------------------------------------------------------------------------------------------*/ /* Purpose: SFP Macro to get current file from FTP servers defined below */ /* File is retrieved from a server based on where it is on the PC */ /* Why? Sometimes you just screw up the source code and need to get it from the server again */ /* FTPGET Invokes Browse window with command stream */ /* Author: Mark McDonald */ /* mark@manmrk.net */ /* Date: 20050218 */ /* Tested with Linux server and windows - Should work with SPFPC 4.0 as well */ /*---------------------------------------------------------------------------------------------*/ /*--- Retrieve Path/File Name of Source File ---*/ 'ISREDIT (FILENAME) = DATASET' /* C:\TEMP\FILE.EXE */ /*--- Retrieve Member Name of Source File ---*/ 'ISREDIT (FULLNAME) = MEMBER' /* FILE.EXE */ /*--- Set Passed Parms ---*/ PARMS = TRANSLATE(PARMS) /*--- Initialize Variables ---*/ FTPSITE = "" FPATH = "" FTPFILE = "" FTPU = "" XCNT = 0 T = 0 FTPLINE = "" /*--- Get Member Name ---*/ /*--- Build FTP Site Specific Data: IPA user password rootpath mirrorIPA ---*/ SITEDATA.COUNCIL = "urladdress userid password public_html mirrorurladdress" SITEDATA.DEFCON = "urladdress userid password domains/afgedefcon.org/public_html 79.75.148.180" SITEDATA.MANMRK = "156.168.2.16 userid password domains/manmrk.net/public_html 79.75.148.180" SITEDATA.3614 = "79.75.148.180 userid password public_html" SITEDATA.PWCAP = "79.75.148.180 userid password public_html" SITEDATA.MFE = "79.75.148.180 userid password public_html" SITEDATA.WYOHATS = "79.75.148.180 userid password public_html" SITEDATA.DENTAL = "79.75.148.180 userid password public_html" SITEDATA.EEOC = "79.75.148.180 userid password public_html" /*--- Determine Which Site I am Working ON (Note it does not matter how many sub directories down they are) ---*/ IF POS("\COUNCIL",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "COUNCIL" IF POS("\DEFCON",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "DEFCON" IF POS("\3614",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "3614" IF POS("\MANMRK",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "MANMRK" IF POS("\MFE",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "MFE" IF POS("\WYOHATS",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "WYOHATS" IF POS("\ADENTAL",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "DENTAL" IF POS("\EEOC",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "EEOC" /*--- Get File Path ---*/ FPATH = TRANSLATE(FILENAME," ","\") /*--- Make Temp File Names ---*/ FTPROOT = 'C:\TEMP\' FTPU = XMKFILESPEC() FTPFILE = FTPROOT''FTPU'.DAT' FTPBAT = FTPROOT''FTPU'.BAT' /*--- Build FTP Command File ---*/ T = LINEOUT(FTPFILE,WORD(SITEDATA.FTPSITE,2)) /*--- User Name ---*/ T = LINEOUT(FTPFILE,WORD(SITEDATA.FTPSITE,3)) /*--- Password ---*/ T = LINEOUT(FTPFILE,'binary') /*--- Type is Binary ---*/ T = LINEOUT(FTPFILE,'bell') /*--- Ring the Bell ---*/ T = LINEOUT(FTPFILE,'cd 'WORD(SITEDATA.FTPSITE,4)) /*--- Get to Root Directory ---*/ /*--- If file is not in root directory, then build commands to get there ---*/ IF WORDS(FPATH) > 1 THEN DO XCNT = WORDPOS(FTPSITE,TRANSLATE(FPATH))+1 TO WORDS(FPATH)-1 T = LINEOUT(FTPFILE,'cd 'WORD(FPATH,XCNT)) END T = LINEOUT(FTPFILE,'get 'FULLNAME' 'FILENAME) /*--- Send member to server ---*/ T = LINEOUT(FTPFILE,'quit') /*--- keep FTP Window Open to Show Status ---*/ T = LINEOUT(FTPFILE) /*--- Close FTP Command File ----*/ /*--- Build FTP Command Line ---*/ FTPLINE = "FTP -d -s:"FTPFILE" "WORD(SITEDATA.FTPSITE,1) /*--- Create FTP Batch File ---*/ T = LINEOUT(FTPBAT,FTPLINE) T = LINEOUT(FTPBAT,'PAUSE') T = LINEOUT(FTPBAT) /*--- Debug Mode? ---*/ IF PARMS = "C" THEN DO 'ISREDIT BROWSE 'FTPFILE exit 0 END /*--- Execute DOS FTP Batch Program ---*/ ADDRESS DOS FTPBAT /*--- Display FTP Return Code in SPF Message Area (upper right of window) ---*/ ZEDSMSG = "FTP RC = "RC ZEDLMSG = "FTP RC ="RC 'ISPEXEC SETMSG MSG(ISRZ000)' /*--- Delete Current File Image ---*/ 'ISREDIT DELETE NX ALL' /*--- Bring New Image into Current Edit Session ---*/ 'ISREDIT COPY 'FULLNAME exit 0 ERROREXIT: SAY "FTP Site Information NOT Found Sitedata List" SAY "Tranfer not performed" SAY "Press ENTER to Continue" PARSE PULL Z exit 0 /*---------------------------------------------------------------*/ /*--- Build Semi-Unique Result File Name ---*/ XMKFILESPEC: PROCEDURE XR = SUBSTR(DATE('J'),3,3," ")''TIME('S') RETURN (XR) /*---------------------------------------------------------------*/