aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-04-21 22:37:29 +0000
committerrsc <devnull@localhost>2004-04-21 22:37:29 +0000
commit24c8d8491f7260a6b24b285bdcafc3a5f7351cbb (patch)
tree8292527b12d5bf8d6f6a05ac7263abccfaf59346 /src/cmd
parent53db2d0f6bfc971f44183f360f3db5a72edd948a (diff)
downloadplan9port-24c8d8491f7260a6b24b285bdcafc3a5f7351cbb.tar.gz
plan9port-24c8d8491f7260a6b24b285bdcafc3a5f7351cbb.tar.bz2
plan9port-24c8d8491f7260a6b24b285bdcafc3a5f7351cbb.zip
add -m flag
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;