retawq Documentation
Custom Connections

Introduction

Normally, retawq tries to handle all network activity in a completely automated way: you only enter a URL, e.g. with the keyboard command "g", and the program connects to a server and handles the network commands and responses as appropriate for the respective protocol. But in some cases, you might want to "customize" the sequence of network commands manually, e.g. because you want to access a server which requires special commands or special sequences of commands to get a certain job done. That's what the "custom connections" feature is for. It provides a functionality similar to that of the usual, old, shell-like FTP clients.

Please note that this feature is very young - introduced in version 0.2.6 - and might not yet work as expected.

To use custom connections, start the program in console runmode with the command-line option "--console". You are provided with a text prompt on a "raw" text console which doesn't use any curses library support, similar to usual shell-like FTP clients. At the prompt, you can enter textual commands like "open", "get", "help" or "quit".

Opening a Connection

To open a connection to a server, enter the command "open" with one argument. Deviating from usual shell-like FTP clients, the argument isn't a bare server name but instead a URL which consists of a scheme and the actual server name and, optionally, a port number. If no explicit scheme is given, FTP is assumed here. Some example commands: "open foo.org", "open ftp://foo.org", "open ftp.foo.org", "open ftp.foo.org:42", "open ftps://ftp.foo.org/".

The following schemes are currently "known" for custom connections:

When a connection has been established, you usually want to enter the commands "user" and "pass", followed by some sequence of "cd", "ls", "binary" and "get" or other commands. When you are done with a connection, use a "close" command.

Tasks

Deviating from most shell-like FTP clients, retawq allows you to operate on several connections at the same time for extra comfort and flexibility. In console runmode, each (control) connection is represented by a "task". Each task is identified by a unique "task identification number" ("task ID"). The task ID of the current task (if any) is shown in the prompt string.

Whenever you open a new connection, e.g. with an "open" command, a new task is created. To get a list of all currently existing tasks or information about specific tasks, use the command "info". To switch to a different task, select it with the command "task". If the current task is busy and you want to get a prompt, press the key "&". (Mnemonic: that's the key which you use at the end of a line in a normal shell to execute a job in the background.)

Commands

The below textual commands are available for the handling of custom connections. Some commands may or must have arguments; commands and any arguments are separated by space characters; if a command requires a certain number of arguments, this is mentioned in parentheses. At run-time, you can get a list of available commands by using the command "help" without arguments, and you can get short information about specific commands by using the command "help" with the respective commands as arguments. You'll notice that some usual commands like "put" are currently missing - they will be implemented in a future version.

Many servers accept some of the commands only if you are logged in as a "real" (non-anonymous) user - especially commands which change something on the server file system, e.g. delete, mkdir, rmdir.

Commands may be abbreviated as far as they don't become ambiguous; for example, the command "quote" may be abbreviated to "quo", but not further ("qu", "q") because this could be mixed up with "quit".

To discard the current input for a command in console runmode, press ctrl-c.


This documentation file is part of version 0.2.6c of retawq, a network client created by Arne Thomaßen. retawq is basically released under certain versions of the GNU General Public License and WITHOUT ANY WARRANTY. Copyright (C) 2001-2006 Arne Thomaßen.