2.0.17 • Published 2 years ago

@jprayner/ecoclient v2.0.17

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

ecoclient

Command-line utility for performing Econet operations from a PC (Windows, Mac or Linux) using Piconet hardware.

Demo

output

Prerequisites

The following are required to use ecoclient:

Installation & configuration

npm install -g @jprayner/ecoclient
ecoclient set-fs 1          # required if your fileserver is not 254
ecoclient set-station 32    # an unassigned station number on you local Econet network

State of development

This project is still under development. Currently:

  • Most fileserver testing has been against a Level 3 (BBC) fileserver although a Level 4 fileserver (Archimedes) and PiEconetBridge fileserver have also been used. User testing suggests that an Acorn Filestore also works (with floppy disks).
  • Most host OS testing has been performed on a Mac, although Linux and Windows have also been tried successfully.

Commands

set-fs station

Sets the fileserver station number. Defaults to 254.

ArgumentDescription
stationFileserver station number in range 1-254

Example:

ecoclient set-fs 1

set-station station

Sets the local station number. Must be configured before using other commands (except setXXX and monitor).

ArgumentDescription
stationLocal station number in range 1-254

Example:

ecoclient set-station 32

notify station

Sends a notification message to a station like a *NOTIFY command.

ArgumentDescription
stationStation number to send a message to in range 1-254
messageThe text of the message (may include a \r to execute a command)

monitor

Listen for network traffic like a "NETMON" command. However, better than `NETMON`, this command will dump every single byte of a packet.

Example:

ecoclient monitor

i-am username

Login to fileserver like a *I AM command. Directory handles (e.g. current directory) are persisted such that they take effect with other commands like dir.

ArgumentDescription
usernameRegistered username, known to the fileserver
passwordPassword which corresponds to username

Example:

ecoclient i-am JPR93 MYPASS

bye

Logout of the fileserver like a *BYE command.

Example:

ecoclient bye

dir directory

Change current directory on fileserver like a *DIR command. Directory handles are persisted such that they take effect with subsequent commands like get, put, load, save or dir.

ArgumentDescription
dirNew directory on fileserver. May be relative to current directory, prefixed with $. to change to a directory relative to the root etc. Omit to change to home directory.

Examples:

ecoclient dir $.Library
ecoclient dir subdir

get pathPattern

Download the specified file(s) to the current directory of the local host. Load and execution addresses are optionally persisted in the local filename or an .inf file (see set-metadata command).

The * wildcard matches multiple characters whereas the ? wildcard matches a single character. Use the recurse option to copy directories.

OptionDescription
--recurse, -rRecurse into matching directories.
--force, -fForce overwrite of pre-existing local files without prompting.
ArgumentDescription
pathPatternName of remote file(s)/dir(s). May be relative to current directory, prefixed with $. if relative to the root directory etc.

Examples:

ecoclient get MyFile
ecoclient get 'My*'
ecoclient get $.Games.MyFile
ecoclient get -r MyDir
ecoclient get -rf MyDir

put pathPattern

Upload the specified file(s)/dir(s) from the host machine to the current directory on the server. Sets load/execution addresses if embedded in filename or found in a corresponding .inf file (see set-metadata command).

The * wildcard matches multiple characters whereas the ? wildcard matches a single character. Use the recurse option to copy directories.

The contents of DFS disk images may be uploaded by specifying a file with a .ssd or .dsd extension.

OptionDescription
--recurse, -rRecurse into matching directories.
--force, -fForce overwrite of pre-existing remote files without prompting.
ArgumentDescription
pathPatternName of local file(s)/dir(s). May be relative to current directory, prefixed with $. if relative to the root directory etc.

Examples:

ecoclient put MyFile
ecoclient put 'My*'
ecoclient put Games/MyFile
ecoclient put -r MyDir
ecoclient put -rf MyDir
ecoclient put games.ssd

load filename

Download the specified BASIC file from the server, use basictool to de-tokenise it and write it to a file on the local filesystem naned as ${filename}.bas.

Assumes basictool is on the local machine's PATH.

ArgumentDescription
filenameName of remote file. May be relative to current directory or prefixed with $. if relative to the root directory.

Examples:

ecoclient load Menu
ecoclient get $.Games.Menu

save localPath

Utilises basictool to tokenize the specified plain-text BASIC file on the local filesystem and uploads the result to the server.

Assumes basictool is on the local machine's PATH.

ArgumentDescription
localPathPath to local file.
optional destPathPath to remote file. If ommitted, taken from filename in local .inf file

Examples:

ecoclient save Menu
ecoclient save $.Games.Menu

cat dirPath

Provides a file listing for the specified directory.

ArgumentDescription
optional dirPathDirectory path: may be relative to the current directory or prefixed with $. to list a directory relative to the fileserver root. If ommitted, lists the current directory.

Examples:

ecoclient cat Subdir
ecoclient cat $.Games

cdir dirPath

Creates a directory.

ArgumentDescription
dirPathDirectory path: may be relative to the current directory or prefixed with $. to create a directory relative to the fileserver root.

Examples:

ecoclient cdir Subdir
ecoclient cdir $.Subdir

delete pathPattern

Deletes the specified file(s) and dir(s).

The * wildcard matches multiple characters whereas the ? wildcard matches a single character. Use the recurse option to delete directories.

OptionDescription
--recurse, -rRecurse into matching directories.
--force, -fForce deletion of files without prompting.
ArgumentDescription
pathPatternName of remote file(s)/dir(s). May be relative to current directory, prefixed with $. if relative to the root directory etc.

Examples:

ecoclient delete MyFile
ecoclient delete --force MyFile
ecoclient delete -f MyFile
ecoclient delete $.Games.MyFile
ecoclient delete -f 'My*'
ecoclient delete --recurse 'MyDir'
ecoclient delete -rf 'MyDir'

access path

Set access rights for a file on the fileserver.

ArgumentDescription
pathFile or directory path: may be relative to the current directory or prefixed with $. to delete a directory relative to the fileserver root.
accessStringAn Econet access string e.g. WR/R

Examples:

ecoclient access MyFile WR/
ecoclient access $.Games.MyFile WR/

pass oldPassword

Change password for current user.

ArgumentDescription
oldPasswordCurrent password (or leave blank if none set)
newPasswordNew password (or leave blank to remove)

Examples:

ecoclient pass MYPASS1 MYPASS2  # Normal use
ecoclient pass '' MYPASS        # Handy for newly-created accounts
ecoclient pass MYPASS ''        # Remove password

newuser username

Create a new user.

ArgumentDescription
usernameUsername to be registered with the fileserver

Example:

ecoclient newuser ethel

remuser username

Remove an existing user.

ArgumentDescription
usernameRegistered username, known to the fileserver

Example:

ecoclient remuser gertrude

priv username

Set privilege level for specified user.

ArgumentDescription
usernameRegistered username, known to the fileserver
levelS == System, N (or ommit) == Normal, others are system/level-dependent

Examples:

priv susan S   # let's be besties, have the keys to my front door
priv brian     # screw this guy, bust him down to private
priv adrian N  # screw this guy, bust him down to private
2.0.15

2 years ago

2.0.16

2 years ago

2.0.13

2 years ago

2.0.14

2 years ago

2.0.17

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.11

2 years ago

2.0.7

2 years ago

2.0.12

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.10

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.0

2 years ago

1.0.18

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.10

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago