Netfiles, netfileget, netfileput, netfilestat – network file access inside acme

netfileget [ −d ] system path
netfileput system path
netfilestat system path

Netfiles presents remote file systems in acme(4) windows. Each window is named /n/system/path and displays the contents of path on system.
Netfiles reads names of windows to create from the plumbing channel netfileedit (see plumber(4) and the example section below). In a netfiles-controlled window, Get, Put, and button 3 loads work as in normal acme windows. External commands executed with button 2 run in the directory in which acme was started.
Netfiles uses the helper programs netfileget, netfileput, and netfilestat to access the remote file systems. The three first check to see if system is a service in the current name space (see intro(4)). If so, they use 9p(1) to access it. Otherwise, they assume that the system is a network name and use ssh(1)’s sftp to access it.
Netfileget prints the contents of the named path to standard output. If the −d option is given, then netfileget prints a single-column listing of path, which must be a directory. Directories in the listing have / appended to their names.
Netfileput writes its standard input to the named path.
Netfilestat prints the file type of path, one of nonexistent, directory, or file.

The following plumbing rule (see plumb(7)) passes /n/ paths to Netfiles, starting it if necessary.
# /n/ paths go to simulator in acme
kind is text
data matches '[a−zA−Z0−9_\−./]+('$addr')?'
data matches '(/n/[a−zA−Z0−9_\−./]+)('$addr')?'
plumb to netfileedit
plumb client Netfiles


9p(1), ssh(1), ssh-agent(1), intro(4), acme(4), factotum(4),

Netfiles depends on sftpcache(1), which only works with OpenSSH versions 4.3 and earlier; later versions do not print the sftp> prompt frequently enough.

Space Glenda