home *** CD-ROM | disk | FTP | other *** search
- /**
- * $Id$
- *
- *
- * Aminet FTP file
- * Copyright © 1995 HiSoft. All Rights Reserved.
- **/
-
- ADDLIB('rexxsupport.library',0,-30,0)
-
- PASSES = 0
-
- ADDRESS Twist
- PARSE ARG dbfilename,rela_x,rela_y,shiftkeys
- OPEN dbfilename
-
- OPTIONS RESULTS
-
- LOGNAME = "anonymous"
- FILESTOFTP = 'ENV:SortedAminetFTPGetList'
- LASTFTPSITE = ""
- Open(input,'RAM:FTP',W)
-
- IF exists('ENV:HOST') = 1 then
- DO
- OPEN(input1, 'ENV:HOST', R)
- HOSTNAME = '@' || READLN(input1)
- CLOSE(input1)
- END
-
- ELSE
-
- DO UNTIL VALID = 1
-
- SAY "AmiTCP ENV:HOST not found enter your host name e.g. @xyx.com"
- PARSE PULL Hostname
- IF Substr(Hostname,1,1) ~= "@" THEN
- DO
- SAY HOSTNAME "is an invalid hostname, must be like @xyz.com"
- END
- ELSE
- DO
- VALID = 1
- END
-
- END
-
- IF exists('ENV:LOGNAME') = 1 then
- DO
- OPEN(input2, 'ENV:LOGNAME', R)
- FTPNAME = READLN(input2)
- CLOSE(input2)
- END
-
- ELSE
-
- DO
-
- SAY "AmiTCP ENV:LOGNAME not found enter your log name e.g. myname"
- PARSE PULL FTPNAME
-
- END
-
-
- IF EXISTS(FILESTOFTP) THEN
- DO
- Open(ftpinput,FILESTOFTP)
-
- DO UNTIL EOF(ftpinput) = 1
- FTPENTRY = Readln(ftpinput)
- PARSE VAR FTPENTRY '//' FTPSITE '/' PATHNAME
- CALL READVARIABLES
- IF FTPSITE != "" THEN DO
- CALL FTPFILE
- END
- END
-
- Close(ftpinput)
-
- END
-
- VALID = 0
-
-
- CLOSE(input)
-
- ADDRESS COMMAND 'run AmiTCP:bin/ftp >CON: <RAM:FTP -n -i -v ' || FIRSTFTPSITE
-
- EXIT
-
- /* This subroutine parses the filename and path variables out of the
- * the full pathname + filename string.
- */
- READVARIABLES:
- DO i = 1 TO LENGTH(PATHNAME) BY 1
- X = RIGHT(PATHNAME,i)
- Z = SUBSTR(X,1,1)
- IF Z = "/" THEN
- DO
- FILENAME = RIGHT(PATHNAME,i-1)
- SITEPATH = '/' || LEFT(PATHNAME,LENGTH(PATHNAME)-i)
- i = LENGTH(PATHNAME)
- END
- END
-
-
- /* This subroutine is used to pass the parameters to the pipe,
- * it also examines the last site and decides whether a change of ftp site
- * was requested
- */
- FTPILE:
-
- IF FTPSITE = "" THEN
- DO
- Writeln(input,'close')
- Writeln(input,'quit')
- END
-
- ELSE
-
- DO
-
- IF LASTFTPSITE = "" | LASTFTPSITE ~= FTPSITE THEN
-
- DO
-
- IF LASTFTPSITE = "" THEN
-
- DO
-
- END
-
- ELSE
-
- DO
- Writeln(input,'close')
- END
-
- IF PASSES = 0 THEN
- DO
- FIRSTFTPSITE = FTPSITE
- PASSES = 1
- END
- ELSE
- DO
- Writeln(input,'open ' || FTPSITE)
- END
- Writeln(input,'user ' || LOGNAME '' || FTPNAME || HOSTNAME)
- Writeln(input,'bin')
- Writeln(input,'cd ' || SITEPATH)
- Writeln(input,'get ' || FILENAME)
- LASTFTPSITE = FTPSITE
-
- END
-
- ELSE
-
- DO
-
- Writeln(input,'cd ' || SITEPATH)
- Writeln(input,'get ' || FILENAME)
-
- END
-
- END
-