Mercurial > hg > toybox
changeset 1143:2115856395e2 draft
Ashwini Sharma added -v, I tweaked it a bit and added a couple test suite entries.
author | Rob Landley <rob@landley.net> |
---|---|
date | Wed, 18 Dec 2013 10:20:16 -0600 |
parents | 1e4e707fc0bc |
children | 58daf9c9a0b1 |
files | scripts/test/mkdir.test toys/posix/mkdir.c |
diffstat | 2 files changed, 15 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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" \ + "" "" ""
--- 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; }