diff options
Diffstat (limited to 'sys/src/cmd/fossil/fossil.c')
-rw-r--r-- | sys/src/cmd/fossil/fossil.c | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/sys/src/cmd/fossil/fossil.c b/sys/src/cmd/fossil/fossil.c deleted file mode 100644 index c317d0cfe..000000000 --- a/sys/src/cmd/fossil/fossil.c +++ /dev/null @@ -1,142 +0,0 @@ -#include "stdinc.h" -#include <ctype.h> - -#include "9.h" - -int Dflag; -int mempcnt; /* for 9fsys.c */ -char* none = "none"; - -static void -usage(void) -{ - fprint(2, "usage: %s [-Dt] [-c cmd] [-f partition] [-m %%]\n", argv0); - exits("usage"); -} - -static void -readCmdPart(char *file, char ***pcmd, int *pncmd) -{ - char buf[1024+1], *f[1024]; - char tbuf[1024]; - int nf; - int i, fd, n; - char **cmd, *p; - int ncmd; - - cmd = *pcmd; - ncmd = *pncmd; - - if((fd = open(file, OREAD)) < 0) - sysfatal("open %s: %r", file); - if(seek(fd, 127*1024, 0) != 127*1024) - sysfatal("seek %s 127kB: %r", file); - n = readn(fd, buf, sizeof buf-1); - if(n == 0) - sysfatal("short read of %s at 127kB", file); - if(n < 0) - sysfatal("read %s: %r", file); - buf[n] = 0; - if(memcmp(buf, "fossil config\n", 6+1+6+1) != 0) - sysfatal("bad config magic in %s", file); - nf = getfields(buf+6+1+6+1, f, nelem(f), 1, "\n"); - for(i=0; i<nf; i++){ - if(f[i][0] == '#') - continue; - cmd = vtMemRealloc(cmd, (ncmd+1)*sizeof(char*)); - /* expand argument '*' to mean current file */ - if((p = strchr(f[i], '*')) && (p==f[i]||isspace(p[-1])) && (p[1]==0||isspace(p[1]))){ - memmove(tbuf, f[i], p-f[i]); - strecpy(tbuf+(p-f[i]), tbuf+sizeof tbuf, file); - strecpy(tbuf+strlen(tbuf), tbuf+sizeof tbuf, p+1); - f[i] = tbuf; - } - cmd[ncmd++] = vtStrDup(f[i]); - } - close(fd); - *pcmd = cmd; - *pncmd = ncmd; -} - -void -main(int argc, char* argv[]) -{ - char **cmd, *p; - int i, ncmd, tflag; - - fmtinstall('D', dirfmt); - fmtinstall('F', fcallfmt); - fmtinstall('M', dirmodefmt); - quotefmtinstall(); - - /* - * Insulate from the invoker's environment. - */ - if(rfork(RFREND|RFNOTEG|RFNAMEG) < 0) - sysfatal("rfork: %r"); - - close(0); - open("/dev/null", OREAD); - close(1); - open("/dev/null", OWRITE); - - cmd = nil; - ncmd = tflag = 0; - - vtAttach(); - - ARGBEGIN{ - case '?': - default: - usage(); - break; - case 'c': - p = EARGF(usage()); - currfsysname = p; - cmd = vtMemRealloc(cmd, (ncmd+1)*sizeof(char*)); - cmd[ncmd++] = p; - break; - case 'D': - Dflag ^= 1; - break; - case 'f': - p = EARGF(usage()); - currfsysname = p; - readCmdPart(p, &cmd, &ncmd); - break; - case 'm': - mempcnt = atoi(EARGF(usage())); - if(mempcnt <= 0 || mempcnt >= 100) - usage(); - break; - case 't': - tflag = 1; - break; - }ARGEND - if(argc != 0) - usage(); - - consInit(); - cliInit(); - msgInit(); - conInit(); - cmdInit(); - fsysInit(); - exclInit(); - fidInit(); - - srvInit(); - lstnInit(); - usersInit(); - - for(i = 0; i < ncmd; i++) - if(cliExec(cmd[i]) == 0) - fprint(2, "%s: %R\n", cmd[i]); - vtMemFree(cmd); - - if(tflag && consTTY() == 0) - consPrint("%s\n", vtGetError()); - - vtDetach(); - exits(0); -} |