Commit Diff


commit - 5c84c448b82c7bfdfeaae533783aa09317656e86
commit + 011090f03b7a9f83646dbdd24f321b93e6733a73
blob - c7000fbae1948ca26ef749c4ba875cee622f00c5
blob + cac024a0f366da89c939046c743acf156bbc2b75
--- man/man1/9p.1
+++ man/man1/9p.1
@@ -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
blob - 22446b2e6dc7732282e13f8b2d555bad1f42295f
blob + 909bfeb6492cf2136aab87b5dd5915e796479d42
--- src/cmd/9p.c
+++ 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;
 }