FESI language extensions - File I/O
Author: Jean-MarcLugrin
Description: Describe the FESI EcmaScript interpreter extensions to access File I/O capabilities
Keywords: EcmaScript, JavaScript, JScript, Java, extension

FesiFTP - An FTP utility with EcmaScript macros capability

``
Version 1.0 - 18 July 1998

`FesiFTP` is an FTP client utility based on the OROinc library allowing the transfer files between a local computer and a remote computer via the FTP protocol. It supports a FESI based EcmaScript macro capability. The macro capability allows to automate file transfers. For example you can automate the sending of a distribution kit to your internet provider.

`FesiFTP` is first a demonstration program. It does not support all capabilities of the FTP prototocol. However the source code is provided and you are free to use it and extend it as you see fit as long as you keep the original copyright (along with yours if any change was done). I would appreciate to get the code of any enhancement for redistribution.

Naturally this demonstration program is provided as is without any warranty.

### The program

The program is started by the usual `java` or `jre` command. It requires that the `NetComponents-1.3.7` library be on the class path. `FesiFTP` has been developed and tested with the JDK 1.1.6.

The program is very simple to use. The main window is a log window used as well to report the result of some commands like the directory listing. The menu entries should be self explanatory. The `remote` menu contains the connection and the remote operations (most of which are only valid when connected). The `local` menu contains local operations. The `transfer` menu contains the file transfer operations. It is only possible to make a single operation at a time. The user is prompted for the parameters required for any menu command. There is no progress bar during the transfer and no way to abort lengthy operations - sorry.

### EcmaScript macros

EcmaScript macros can be written to automate various operations. They must be written with an external text editor.
At startup a file autoload.esftp is automatically loaded if it exists. This file can automate various operations (for example setting defaults or connecting to a server) and install macros. Each script is called with the global variable `ftp` representing the `FesiFTP` program. All functions are reachable as property or method of the `ftp` global variable. See autoload.esftp for an example.

### Global objects and function

`FesiFTP` installs the global object '`ftp'`, and version of `write` and `writeln` which display the parameter strings in the log window.
The ftp object supports both high level routines (implementing the menu commands) and low level routines.

### Global objects and function

See the example code autoload.esftp.

> ftp object - Describes the ftp object and its properties
> high level routines - Describes the high level (menu like) methods of the ftp object
> low level routines - Describe lower level routines to access ftp functions.
> autoload.esftp - An example of a `FesiFTP` script.

Last update: 18 July 1998