diff options
Diffstat (limited to 'src/cmd/mkdir.C')
-rw-r--r-- | src/cmd/mkdir.C | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/src/cmd/mkdir.C b/src/cmd/mkdir.C deleted file mode 100644 index 1c16565d..00000000 --- a/src/cmd/mkdir.C +++ /dev/null @@ -1,80 +0,0 @@ -#include <u.h> -#include <libc.h> - -char *e; -ulong mode = 0777L; - -void -usage(void) -{ - fprint(2, "usage: mkdir [-p] [-m mode] dir...\n"); - exits("usage"); -} - -int -makedir(char *s) -{ - int f; - - if(access(s, AEXIST) == 0){ - fprint(2, "mkdir: %s already exists\n", s); - e = "error"; - return -1; - } - f = create(s, OREAD, DMDIR | mode); - if(f < 0){ - fprint(2, "mkdir: can't create %s: %r\n", s); - e = "error"; - return -1; - } - close(f); - return 0; -} - -void -mkdirp(char *s) -{ - char *p; - - for(p=strchr(s+1, '/'); p; p=strchr(p+1, '/')){ - *p = 0; - if(access(s, AEXIST) != 0 && makedir(s) < 0) - return; - *p = '/'; - } - if(access(s, AEXIST) != 0) - makedir(s); -} - - -void -main(int argc, char *argv[]) -{ - int i, pflag; - char *m; - - pflag = 0; - ARGBEGIN{ - default: - usage(); - case 'm': - m = ARGF(); - if(m == nil) - usage(); - mode = strtoul(m, &m, 8); - if(mode > 0777) - usage(); - break; - case 'p': - pflag = 1; - break; - }ARGEND - - for(i=0; i<argc; i++){ - if(pflag) - mkdirp(argv[i]); - else - makedir(argv[i]); - } - exits(e); -} |