mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-27 11:52:03 +00:00
add -n to ls; add rm and create
This commit is contained in:
parent
39e5957ace
commit
1b404fe6e4
1 changed files with 61 additions and 3 deletions
64
src/cmd/9p.c
64
src/cmd/9p.c
|
@ -20,7 +20,7 @@ usage(void)
|
||||||
fprint(2, " writefd name\n");
|
fprint(2, " writefd name\n");
|
||||||
fprint(2, " stat name\n");
|
fprint(2, " stat name\n");
|
||||||
fprint(2, " rdwr name\n");
|
fprint(2, " rdwr name\n");
|
||||||
fprint(2, " ls [-ld] name\n");
|
fprint(2, " ls [-ldn] name\n");
|
||||||
fprint(2, "without -a, name elem/path means /path on server unix!$ns/elem\n");
|
fprint(2, "without -a, name elem/path means /path on server unix!$ns/elem\n");
|
||||||
threadexitsall("usage");
|
threadexitsall("usage");
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,8 @@ void xwritefd(int, char**);
|
||||||
void xstat(int, char**);
|
void xstat(int, char**);
|
||||||
void xls(int, char**);
|
void xls(int, char**);
|
||||||
void xrdwr(int, char**);
|
void xrdwr(int, char**);
|
||||||
|
void xrm(int, char**);
|
||||||
|
void xcreate(int, char**);
|
||||||
void xcon(int, char**);
|
void xcon(int, char**);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
@ -47,6 +49,8 @@ struct {
|
||||||
"stat", xstat,
|
"stat", xstat,
|
||||||
"rdwr", xrdwr,
|
"rdwr", xrdwr,
|
||||||
"ls", xls,
|
"ls", xls,
|
||||||
|
"rm", xrm,
|
||||||
|
"create", xcreate,
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -320,6 +324,55 @@ xrdwr(int argc, char **argv)
|
||||||
threadexitsall(0);
|
threadexitsall(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
xcreate(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
CFsys *fs;
|
||||||
|
CFid *fid;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
ARGBEGIN{
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}ARGEND
|
||||||
|
|
||||||
|
if(argc == 0)
|
||||||
|
usage();
|
||||||
|
|
||||||
|
for(i=0; i<argc; i++){
|
||||||
|
fs = xparse(argv[i], &p);
|
||||||
|
if((fid=fscreate(fs, p, OREAD, 0666)) == nil)
|
||||||
|
fprint(2, "create %s: %r\n", argv[i]);
|
||||||
|
else
|
||||||
|
fsclose(fid);
|
||||||
|
fsunmount(fs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
xrm(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
CFsys *fs;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
ARGBEGIN{
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}ARGEND
|
||||||
|
|
||||||
|
if(argc == 0)
|
||||||
|
usage();
|
||||||
|
|
||||||
|
for(i=0; i<argc; i++){
|
||||||
|
fs = xparse(argv[i], &p);
|
||||||
|
if(fsremove(fs, p) < 0)
|
||||||
|
fprint(2, "remove %s: %r\n", argv[i]);
|
||||||
|
fsunmount(fs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rdcon(void *v)
|
rdcon(void *v)
|
||||||
{
|
{
|
||||||
|
@ -417,15 +470,19 @@ void
|
||||||
xls(int argc, char **argv)
|
xls(int argc, char **argv)
|
||||||
{
|
{
|
||||||
char *err, *name, *xname, *f[4], buf[4096];
|
char *err, *name, *xname, *f[4], buf[4096];
|
||||||
int nf, i, j, l;
|
int nf, i, j, l, sort;
|
||||||
int lflag, dflag, n, len[4];
|
int lflag, dflag, n, len[4];
|
||||||
Dir *d;
|
Dir *d;
|
||||||
CFid *fid;
|
CFid *fid;
|
||||||
CFsys *fs;
|
CFsys *fs;
|
||||||
|
|
||||||
err = nil;
|
err = nil;
|
||||||
|
sort = 0;
|
||||||
lflag = dflag = 0;
|
lflag = dflag = 0;
|
||||||
ARGBEGIN{
|
ARGBEGIN{
|
||||||
|
case 'n':
|
||||||
|
sort = 0;
|
||||||
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
lflag = 1;
|
lflag = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -465,7 +522,8 @@ xls(int argc, char **argv)
|
||||||
err = "errors";
|
err = "errors";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
qsort(d, n, sizeof d[0], dircmp);
|
if(sort)
|
||||||
|
qsort(d, n, sizeof d[0], dircmp);
|
||||||
for(j=0; j<5; j++)
|
for(j=0; j<5; j++)
|
||||||
len[j] = 0;
|
len[j] = 0;
|
||||||
for(i=0; i<n; i++){
|
for(i=0; i<n; i++){
|
||||||
|
|
Loading…
Reference in a new issue