13 while((n = read(from, buf, sizeof buf)) > 0)
14 if(write(to, buf, n) < 0)
15 sysfatal("write failed: %r");
17 sysfatal("read failed: %r");
23 fprint(2, "usage: webget [-b baseurl] [-m mtpt] [-p postbody] url\n");
28 main(int argc, char **argv)
30 int conn, ctlfd, fd, n;
31 char buf[128], *base, *mtpt, *post, *url;
40 base = EARGF(usage());
43 mtpt = EARGF(usage());
46 post = EARGF(usage());
55 snprint(buf, sizeof buf, "%s/clone", mtpt);
56 if((ctlfd = open(buf, ORDWR)) < 0)
57 sysfatal("couldn't open %s: %r", buf);
58 if((n = read(ctlfd, buf, sizeof buf-1)) < 0)
59 sysfatal("reading clone: %r");
61 sysfatal("short read on clone");
66 if(fprint(ctlfd, "baseurl %s", base) < 0)
67 sysfatal("baseurl ctl write: %r");
69 if(fprint(ctlfd, "url %s", url) <= 0)
70 sysfatal("get ctl write: %r");
73 snprint(buf, sizeof buf, "%s/%d/postbody", mtpt, conn);
74 if((fd = open(buf, OWRITE)) < 0)
75 sysfatal("open %s: %r", buf);
76 if(write(fd, post, strlen(post)) < 0)
77 sysfatal("post write failed: %r");
81 snprint(buf, sizeof buf, "%s/%d/body", mtpt, conn);
82 if((fd = open(buf, OREAD)) < 0)
83 sysfatal("open %s: %r", buf);