void main(int argc, char *argv[]) { int i, ok, stdout; stdout = 0; ARGBEGIN{ case 'D': debug++; break; case 'c': stdout++; break; case 't': table++; break; case 'T': settimes++; break; case 'v': verbose++; break; default: usage(); break; }ARGEND crctab = mkcrctab(GZCRCPOLY); ok = inflateinit(); if(ok != FlateOk) sysfatal("inflateinit failed: %s", flateerr(ok)); if(argc == 0){ Binit(&bin, 0, OREAD); settimes = 0; infile = "<stdin>"; ok = gunzip(1, "<stdout>", &bin); }else{ ok = 1; if(stdout) settimes = 0; for(i = 0; i < argc; i++) ok &= gunzipf(argv[i], stdout); } exits(ok ? nil: "errors"); }
void populate(char *name) { char *p; Fileinf f; ZipHead zh; int ok, entries; crctab = mkcrctab(ZCrcPoly); ok = inflateinit(); if(ok != FlateOk) sysfatal("inflateinit failed: %s", flateerr(ok)); bin = Bopen(name, OREAD); if (bin == nil) error("Can't open argument file"); entries = findCDir(bin); if(entries < 0) sysfatal("empty file"); while(entries-- > 0){ memset(&zh, 0, sizeof(zh)); if(!cheader(bin, &zh)) break; f.addr = zh.off; if(zh.iattr & IS_TEXT) f.addr |= High64; f.mode = (zh.madevers == IS_MSDOS && zh.eattr & IS_RDONLY)? 0444: 0644; if (zh.meth == 0 && zh.uncsize == 0){ p = strchr(zh.file, '\0'); if(p > zh.file && p[-1] == '/') f.mode |= (DMDIR | 0111); } f.uid = 0; f.gid = 0; f.size = zh.uncsize; f.mdate = msdos2time(zh.modtime, zh.moddate); f.name = zh.file + ((zh.file[0] == '/')? 1: 0); poppath(f, 1); free(zh.file); } return ; }
void main(int argc, char *argv[]) { char *srv, *mtpt; char buf[MAXPATH]; inflateinit(); fmtinstall('H', Hfmt); srv = nil; mtpt = "/mnt/hg"; ARGBEGIN { case 'D': chatty9p++; break; case 'm': mtpt = EARGF(usage()); break; case 's': srv = EARGF(usage()); break; default: usage(); } ARGEND; if(getworkdir(workdir, *argv) < 0) sysfatal("can't find workdir: %r"); snprint(buf, sizeof(buf), "%s/.hg/store/00changelog", workdir); if(revlogopen(&changelog, buf, OREAD) < 0) sysfatal("can't open changelog: %r\n"); snprint(buf, sizeof(buf), "%s/.hg/store/00manifest", workdir); if(revlogopen(&manifest, buf, OREAD) < 0) sysfatal("can't open menifest: %r\n"); postmountsrv(&fs, srv, mtpt, MREPL); exits(0); }
void main(int argc, char *argv[]) { char *zfile; int fd, ok, table, stream; table = 0; stream = 0; zfile = nil; ARGBEGIN{ case 'a': autodir++; break; case 'D': debug++; break; case 'c': stdout++; break; case 'i': lower++; break; case 'f': zfile = ARGF(); if(zfile == nil) usage(); break; case 's': stream++; break; case 't': table++; break; case 'T': settimes++; break; case 'v': verbose++; break; default: usage(); break; }ARGEND nwant = argc; want = argv; crctab = mkcrctab(ZCrcPoly); ok = inflateinit(); if(ok != FlateOk) sysfatal("inflateinit failed: %s", flateerr(ok)); if(zfile == nil){ Binit(&bin, 0, OREAD); zfile = "<stdin>"; }else{ fd = open(zfile, OREAD); if(fd < 0) sysfatal("can't open %s: %r", zfile); Binit(&bin, fd, OREAD); } if(setjmp(seekjmp)){ fprint(2, "trying to re-run assuming -s\n"); stream = 1; Bseek(&bin, 0, 0); } if(table){ if(stream) ok = sunztable(&bin); else ok = unztable(&bin, zfile); }else{ if(stream) ok = sunzip(&bin); else ok = unzip(&bin, zfile); } exits(ok ? nil: "errors"); }