README
1=========================
2ftp 2.3 (08/16/2000)
3=========================
4
5files:
6
7 README - this file
8 ChangeLog - change log
9
10 ftp.tcl - ftp library package
11 ftpdemo.tcl - ftp test program
12 pkgIndex.tcl - package index file for ftp package
13
14 example/README - Overview of the example scripts
15 example/hpupdate.tcl - ftp example "homepage update"
16 example/mirror.tcl - ftp example "directoy mirror"
17 example/newer.tcl - ftp example "software update"
18
19 docs/*html - HTML manual pages
20
211. Introduction
22===============
23
24In order to speed up the update of homepage files on the ftp server of
25my ISP, in spring of 1996 I looked for a useful solution. In those days
26I worked with Linux and used the Linux inside ftp tool.
27As fan of Tcl/Tk 'expect' was my next choice. It is excelently
28suitabled to control interactive processes like ftp sessions.
29A little bit more Tcl/Tk source and hpupdate 0.1 was ready, a script
30for the automatical update of homepage files without subdirectories.
31
32In the beginning of 1997 I was intense employed with RFC 959.
33Simultaneous I played with the Tcl socket command. Thus the
34FTP library for Tcl was developed...
35
36
372. Overview
38===============
39
40The FTP Library Package extends tcl/tk with commands to support the
41FTP protocol. The library package is 100% tcl code, no extensions, no
42C stuff. It is easily to include in programs with
43
44 package require ftp 2.2
45
46Now everybody can write an own ftp program with an own GUI. It works
47with Windows, UNIX, and also, but not tested on Mac. The ftp package
48makes it comfortable and quick to create small tcl scripts for downloading
49files or directory trees. The ftp::Open command creates a session handle for
50each connection, and that handle is then used as the first argument to the
51rest of the commands.
52
53 Supports the following commands:
54
55 ftp::Open <server> <user> <passwd>
56 ftp::Close <handle>
57 ftp::Cd <handle> <directory>
58 ftp::Pwd <handle>
59 ftp::Type <handle> <?ascii|binary|tenex?>
60 ftp::List <handle> <?directory?>
61 ftp::NList <handle> <?directory?>
62 ftp::FileSize <handle> <file>
63 ftp::ModTime <handle> <file>
64 ftp::Delete <handle> <file>
65 ftp::Rename <handle> <from> <to>
66 ftp::Put <handle> <(local | -data "data")> <?remote?>
67 ftp::Append <handle> <(local | -data "data")> <?remote?>
68 ftp::Get <handle> <remote> <?(local | -variable varname)?>
69 ftp::Reget <handle> <remote> <?local?>
70 ftp::Newer <handle> <remote> <?local?>
71 ftp::MkDir <handle> <directory>
72 ftp::RmDir <handle> <directory>
73 ftp::Quote <handle> <arg1> <arg2> ...
74
75This new Releases use the new "fcopy" command to transfer binary data
76between two channels. There is also a version 0.4 of ftp for
77tcl7.6/tk4.2, which works stable using the undocumented command
78"unsupported0" for binary data transfer.
79
80
81