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;
   }