summaryrefslogtreecommitdiff
path: root/sys/src/cmd/plumb
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2020-04-25 10:57:17 -0700
committerOri Bernstein <ori@eigenstate.org>2020-04-25 10:57:17 -0700
commitd52d7bc121c9c761659b6ca3556f360d341ed6c8 (patch)
tree5b0463739e4ee974f81f24f4cab23596f837c210 /sys/src/cmd/plumb
parent2de164c51dc3330859c160b80440e1363fb5b566 (diff)
Backed out changeset 2737b9af622b
not what I wanted to commit.
Diffstat (limited to 'sys/src/cmd/plumb')
-rw-r--r--sys/src/cmd/plumb/plumb.c88
1 files changed, 23 insertions, 65 deletions
diff --git a/sys/src/cmd/plumb/plumb.c b/sys/src/cmd/plumb/plumb.c
index 46a57619b..e0cff9127 100644
--- a/sys/src/cmd/plumb/plumb.c
+++ b/sys/src/cmd/plumb/plumb.c
@@ -35,77 +35,59 @@ gather(void)
}
}
-int
-matchmsg(Plumbmsg *m, Plumbmsg *pat)
-{
- Plumbattr *a;
- char *v;
-
- if(pat->src && strcmp(m->src, pat->src) != 0)
- return 0;
- if(pat->dst && strcmp(m->dst, pat->dst) != 0)
- return 0;
- if(pat->wdir && strcmp(m->wdir, pat->wdir) != 0)
- return 0;
- if(pat->type && strcmp(m->type, pat->type) != 0)
- return 0;
- for(a = m->attr; a != nil; a = a->next){
- v = plumblookup(pat->attr, a->name);
- if(v != nil && strcmp(a->value, v) != 0)
- return 0;
- }
- return 1;
-}
-
void
main(int argc, char *argv[])
{
- char buf[1024], *p, *readport;
+ char buf[1024], *p;
int fd, i, input;
- Plumbmsg *rmsg;
- Plumbattr *a;
input = 0;
- readport = nil;
- m.src = nil;
+ m.src = "plumb";
m.dst = nil;
- m.wdir = nil;
+ m.wdir = getwd(buf, sizeof buf);
m.type = "text";
m.attr = nil;
ARGBEGIN{
case 'a':
- p = EARGF(usage());
+ p = ARGF();
+ if(p == nil)
+ usage();
m.attr = plumbaddattr(m.attr, plumbunpackattr(p));
break;
case 'd':
- m.dst = EARGF(usage());
+ m.dst = ARGF();
+ if(m.dst == nil)
+ usage();
break;
case 'i':
input++;
break;
case 't':
case 'k': /* for backwards compatibility */
- m.type = EARGF(usage());
+ m.type = ARGF();
+ if(m.type == nil)
+ usage();
break;
case 'p':
- plumbfile = EARGF(usage());
+ plumbfile = ARGF();
+ if(plumbfile == nil)
+ usage();
break;
case 's':
- m.src = EARGF(usage());
+ m.src = ARGF();
+ if(m.src == nil)
+ usage();
break;
case 'w':
- m.wdir = EARGF(usage());
- break;
- case 'r':
- readport = EARGF(usage());
+ m.wdir = ARGF();
+ if(m.wdir == nil)
+ usage();
break;
}ARGEND
- if((input && argc>0) || (!input && argc<1) && readport == nil)
+ if((input && argc>0) || (!input && argc<1))
usage();
- if(readport != nil)
- fd = plumbopen(readport, OREAD);
- else if(plumbfile != nil)
+ if(plumbfile != nil)
fd = open(plumbfile, OWRITE);
else
fd = plumbopen("send", OWRITE);
@@ -113,30 +95,6 @@ main(int argc, char *argv[])
fprint(2, "plumb: can't open plumb file: %r\n");
exits("open");
}
- if(readport != nil){
-again:
- rmsg = plumbrecv(fd);
- if(rmsg == nil){
- fprint(2, "plumb: receive failed: %r\n");
- exits("recv");
- }
- print("got message, matching\n");
- if(!matchmsg(rmsg, &m))
- goto again;
- print("src %s\n", rmsg->src);
- print("dst %s\n", rmsg->dst);
- print("wdir %s\n", rmsg->wdir);
- print("type %s\n", rmsg->type);
- print("data %.*s\n", rmsg->ndata, rmsg->data);
- for(a = rmsg->attr; a; a = a->next)
- print("attr %s=%s\n", a->name, a->value);
- plumbfree(rmsg);
- exits(nil);
- }
- if(m.src == nil)
- m.src = "plumb";
- if(m.wdir == nil)
- m.wdir = getwd(buf, sizeof buf);
if(input){
gather();
if(plumblookup(m.attr, "action") == nil)