add -A
This commit is contained in:
parent
5c84c448b8
commit
011090f03b
2 changed files with 46 additions and 14 deletions
|
|
@ -4,24 +4,21 @@
|
|||
.SH SYNOPSIS
|
||||
.B 9p
|
||||
[
|
||||
.B -a
|
||||
.I addr
|
||||
.I options
|
||||
]
|
||||
.B read
|
||||
.I path
|
||||
.br
|
||||
.B 9p
|
||||
[
|
||||
.B -a
|
||||
.I addr
|
||||
.I options
|
||||
]
|
||||
.B readfd
|
||||
.I path
|
||||
.PP
|
||||
.B 9p
|
||||
[
|
||||
.B -a
|
||||
.I addr
|
||||
.I options
|
||||
]
|
||||
.B write
|
||||
[
|
||||
|
|
@ -31,28 +28,49 @@
|
|||
.br
|
||||
.B 9p
|
||||
[
|
||||
.B -a
|
||||
.I addr
|
||||
.I options
|
||||
]
|
||||
.B writefd
|
||||
.I path
|
||||
.PP
|
||||
.B 9p
|
||||
[
|
||||
.B -a
|
||||
.I addr
|
||||
.I options
|
||||
]
|
||||
.B stat
|
||||
.I path
|
||||
.PP
|
||||
.B 9p
|
||||
[
|
||||
.I options
|
||||
]
|
||||
.B rdwr
|
||||
.I path
|
||||
.PP
|
||||
.B 9p
|
||||
[
|
||||
.I options
|
||||
]
|
||||
.B ls
|
||||
[
|
||||
.B -dl
|
||||
]
|
||||
.I path...
|
||||
.SH DESCRIPTION
|
||||
.I 9p
|
||||
is a trivial 9P client that can access a single file on a 9P server.
|
||||
It can be useful for manual interaction with a 9P server or for
|
||||
accessing simple 9P services from within shell scripts.
|
||||
The common options are:
|
||||
.TP
|
||||
.B -a\fI addr
|
||||
dial
|
||||
the server at
|
||||
.I addr
|
||||
.TP
|
||||
.B -A\fI aname
|
||||
attach to the file system named
|
||||
.I aname
|
||||
.PP
|
||||
The first argument is a command, one of:
|
||||
.TP
|
||||
|
|
@ -101,6 +119,16 @@ Print errors, but don't give up.
|
|||
.B Rdwr
|
||||
is useful for interacting with servers like
|
||||
.IR factotum (4).
|
||||
.TP
|
||||
.B ls
|
||||
Print a directory listing in the format of
|
||||
.IR ls (1).
|
||||
The
|
||||
.B -d
|
||||
and
|
||||
.B -l
|
||||
flags have the same meaning as in
|
||||
.IR ls .
|
||||
.PD
|
||||
.PP
|
||||
.I 9p
|
||||
|
|
|
|||
12
src/cmd/9p.c
12
src/cmd/9p.c
|
|
@ -12,7 +12,7 @@ char *addr;
|
|||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: 9p [-a address] cmd args...\n");
|
||||
fprint(2, "usage: 9p [-a address] [-A aname] cmd args...\n");
|
||||
fprint(2, "possible cmds:\n");
|
||||
fprint(2, " read name\n");
|
||||
fprint(2, " readfd name\n");
|
||||
|
|
@ -25,6 +25,7 @@ usage(void)
|
|||
threadexitsall("usage");
|
||||
}
|
||||
|
||||
char *aname;
|
||||
void xread(int, char**);
|
||||
void xwrite(int, char**);
|
||||
void xreadfd(int, char**);
|
||||
|
|
@ -53,6 +54,9 @@ threadmain(int argc, char **argv)
|
|||
int i;
|
||||
|
||||
ARGBEGIN{
|
||||
case 'A':
|
||||
aname = EARGF(usage());
|
||||
break;
|
||||
case 'a':
|
||||
addr = EARGF(usage());
|
||||
if(strchr(addr, '!') == nil)
|
||||
|
|
@ -94,15 +98,15 @@ xparse(char *name, char **path)
|
|||
else
|
||||
*p++ = 0;
|
||||
*path = p;
|
||||
fs = nsamount(name, "");
|
||||
fs = nsamount(name, aname);
|
||||
if(fs == nil)
|
||||
sysfatal("mount: %r");
|
||||
}else{
|
||||
*path = name;
|
||||
if((fd = dial(addr, nil, nil, nil)) < 0)
|
||||
sysfatal("dial: %r");
|
||||
if((fs = fsamount(fd, "")) == nil)
|
||||
sysfatal("fsmount: %r");
|
||||
if((fs = fsamount(fd, aname)) == nil)
|
||||
sysfatal("fsamount: %r");
|
||||
}
|
||||
return fs;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue