1 c9ed5273 2014-11-17 rsc #include <u.h>
2 c9ed5273 2014-11-17 rsc #include <libc.h>
5 c9ed5273 2014-11-17 rsc ulong mode = 0777L;
10 c9ed5273 2014-11-17 rsc fprint(2, "usage: mkdir [-p] [-m mode] dir...\n");
11 c9ed5273 2014-11-17 rsc exits("usage");
15 c9ed5273 2014-11-17 rsc makedir(char *s)
19 c9ed5273 2014-11-17 rsc if(access(s, AEXIST) == 0){
20 c9ed5273 2014-11-17 rsc fprint(2, "mkdir: %s already exists\n", s);
24 c9ed5273 2014-11-17 rsc f = create(s, OREAD, DMDIR | mode);
26 c9ed5273 2014-11-17 rsc fprint(2, "mkdir: can't create %s: %r\n", s);
35 c9ed5273 2014-11-17 rsc mkdirp(char *s)
39 c9ed5273 2014-11-17 rsc for(p=strchr(s+1, '/'); p; p=strchr(p+1, '/')){
41 c9ed5273 2014-11-17 rsc if(access(s, AEXIST) != 0 && makedir(s) < 0)
45 c9ed5273 2014-11-17 rsc if(access(s, AEXIST) != 0)
51 c9ed5273 2014-11-17 rsc main(int argc, char *argv[])
53 c9ed5273 2014-11-17 rsc int i, pflag;
64 c9ed5273 2014-11-17 rsc mode = strtoul(m, &m, 8);
65 c9ed5273 2014-11-17 rsc if(mode > 0777)
73 c9ed5273 2014-11-17 rsc for(i=0; i<argc; i++){
75 c9ed5273 2014-11-17 rsc mkdirp(argv[i]);
77 c9ed5273 2014-11-17 rsc makedir(argv[i]);