# HG changeset patch # User Rob Landley # Date 1387383616 21600 # Node ID 2115856395e290db1e6d3358d4509fc4ec112aa8 # Parent 1e4e707fc0bc2bfa18f81825a64365d8ffef337e Ashwini Sharma added -v, I tweaked it a bit and added a couple test suite entries. diff -r 1e4e707fc0bc -r 2115856395e2 scripts/test/mkdir.test --- a/scripts/test/mkdir.test Mon Dec 16 17:41:25 2013 -0600 +++ b/scripts/test/mkdir.test Wed Dec 18 10:20:16 2013 -0600 @@ -58,3 +58,9 @@ "700\n777\n" "" "" umask 002 rm -rf one + +testing "mkdir -vp" "mkdir -vp walrus 2>&1" \ + "mkdir: created directory 'walrus'\n" "" "" + +testing "mkdir -vp exists" "mkdir -vp walrus 2>&1" \ + "" "" "" diff -r 1e4e707fc0bc -r 2115856395e2 toys/posix/mkdir.c --- a/toys/posix/mkdir.c Mon Dec 16 17:41:25 2013 -0600 +++ b/toys/posix/mkdir.c Wed Dec 18 10:20:16 2013 -0600 @@ -4,17 +4,18 @@ * * See http://opengroup.org/onlinepubs/9699919799/utilities/mkdir.html -USE_MKDIR(NEWTOY(mkdir, "<1pm:", TOYFLAG_BIN|TOYFLAG_UMASK)) +USE_MKDIR(NEWTOY(mkdir, "<1vpm:", TOYFLAG_BIN|TOYFLAG_UMASK)) config MKDIR bool "mkdir" default y help - usage: mkdir [-p] [-m mode] [dirname...] + usage: mkdir [-vp] [-m mode] [dirname...] Create one or more directories. + -m set permissions of directory to mode. -p make parent directories as needed. - -m set permissions of directory to mode. + -v verbose */ #define FOR_mkdir @@ -55,9 +56,11 @@ if (save == '/') mode |= 0300; else if (toys.optflags&FLAG_m) mode = TT.mode; - if (mkdir(dir, mode)<0 && (!(toys.optflags&FLAG_p) || errno != EEXIST)) - return 1; - + if (mkdir(dir, mode)) { + if (!(toys.optflags&FLAG_p) || errno != EEXIST) return 1; + } else if (toys.optflags&FLAG_v) + fprintf(stderr, "%s: created directory '%s'\n", toys.which->name, dir); + if (!(*s = save)) break; }