aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/mkdir.C14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/cmd/mkdir.C b/src/cmd/mkdir.C
index 11421d97..1c16565d 100644
--- a/src/cmd/mkdir.C
+++ b/src/cmd/mkdir.C
@@ -2,11 +2,12 @@
#include <libc.h>
char *e;
+ulong mode = 0777L;
void
usage(void)
{
- fprint(2, "usage: mkdir [-p] dir...\n");
+ fprint(2, "usage: mkdir [-p] [-m mode] dir...\n");
exits("usage");
}
@@ -20,7 +21,7 @@ makedir(char *s)
e = "error";
return -1;
}
- f = create(s, OREAD, DMDIR | 0777L);
+ f = create(s, OREAD, DMDIR | mode);
if(f < 0){
fprint(2, "mkdir: can't create %s: %r\n", s);
e = "error";
@@ -50,11 +51,20 @@ 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;