npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@jprayner/ecoclient

v2.0.17

Published

Command-line utility for performing Econet operations using Piconet hardware.

Downloads

46

Readme

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.

| Argument | Description | | -------- | ---------------------------------------- | | station | Fileserver 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).

| Argument | Description | | -------- | ----------------------------------- | | station | Local station number in range 1-254 |

Example:

ecoclient set-station 32

notify [station] [message]

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

| Argument | Description | | -------- | --------------------------------------------------------------- | | station | Station number to send a message to in range 1-254 | | message | The 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] [password]

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.

| Argument | Description | | -------- | -------------------------------------------- | | username | Registered username, known to the fileserver | | password | Password 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.

| Argument | Description | | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | dir | New 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.

| Option | Description | | ----------------- | -------------------------------------------------------------- | | --recurse, -r | Recurse into matching directories. | | --force, -f | Force overwrite of pre-existing local files without prompting. |

| Argument | Description | | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | | pathPattern | Name 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.

| Option | Description | | ----------------- | --------------------------------------------------------------- | | --recurse, -r | Recurse into matching directories. | | --force, -f | Force overwrite of pre-existing remote files without prompting. |

| Argument | Description | | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | | pathPattern | Name 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.

| Argument | Description | | -------- | ------------------------------------------------------------------------------------------------------------------ | | filename | Name 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] [destPath]

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.

| Argument | Description | | ------------------- | -------------------------------------------------------------------------- | | localPath | Path to local file. | | [optional] destPath | Path 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.

| Argument | Description | | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [optional] dirPath | Directory 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.

| Argument | Description | | -------- | ------------------------------------------------------------------------------------------------------------------------------------- | | dirPath | Directory 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.

| Option | Description | | ----------------- | ------------------------------------------ | | --recurse, -r | Recurse into matching directories. | | --force, -f | Force deletion of files without prompting. |

| Argument | Description | | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | | pathPattern | Name 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] [accessString]

Set access rights for a file on the fileserver.

| Argument | Description | | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | | path | File or directory path: may be relative to the current directory or prefixed with $. to delete a directory relative to the fileserver root. | | accessString | An Econet access string e.g. WR/R |

Examples:

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

pass [oldPassword] [newPassword]

Change password for current user.

| Argument | Description | | ----------- | --------------------------------------------- | | oldPassword | Current password (or leave blank if none set) | | newPassword | New 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.

| Argument | Description | | -------- | --------------------------------------------- | | username | Username to be registered with the fileserver |

Example:

ecoclient newuser ethel

remuser [username]

Remove an existing user.

| Argument | Description | | -------- | -------------------------------------------- | | username | Registered username, known to the fileserver |

Example:

ecoclient remuser gertrude

priv [username] [level]

Set privilege level for specified user.

| Argument | Description | | -------- | -------------------------------------------------------------------------- | | username | Registered username, known to the fileserver | | level | S == 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