From 3a9241add947cb6d24b5de7a8927517426a78795 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 25 Aug 2012 14:25:22 -0500 Subject: Move commands into "posix", "lsb", and "other" menus/directories. --- toys/mkdir.c | 76 ------------------------------------------------------------ 1 file changed, 76 deletions(-) delete mode 100644 toys/mkdir.c (limited to 'toys/mkdir.c') diff --git a/toys/mkdir.c b/toys/mkdir.c deleted file mode 100644 index 90329019..00000000 --- a/toys/mkdir.c +++ /dev/null @@ -1,76 +0,0 @@ -/* vi: set sw=4 ts=4: - * - * mkdir.c - Make directories - * - * Copyright 2012 Georgi Chorbadzhiyski - * - * See http://pubs.opengroup.org/onlinepubs/009695399/utilities/mkdir.html - * - * TODO: Add -m - -USE_MKDIR(NEWTOY(mkdir, "<1p", TOYFLAG_BIN)) - -config MKDIR - bool "mkdir" - default y - help - usage: mkdir [-p] [dirname...] - Create one or more directories. - - -p make parent directories as needed. -*/ - -#include "toys.h" - -DEFINE_GLOBALS( - long mode; -) - -#define TT this.mkdir - -static int do_mkdir(char *dir) -{ - struct stat buf; - char *s; - - // mkdir -p one/two/three is not an error if the path already exists, - // but is if "three" is a file. The others we dereference and catch - // not-a-directory along the way, but the last one we must explicitly - // test for. Might as well do it up front. - - if (!stat(dir, &buf) && !S_ISDIR(buf.st_mode)) { - errno = EEXIST; - return 1; - } - - for (s=dir; ; s++) { - char save=0; - - // Skip leading / of absolute paths. - if (s!=dir && *s == '/' && toys.optflags) { - save = *s; - *s = 0; - } else if (*s) continue; - - if (mkdir(dir, TT.mode)<0 && (!toys.optflags || errno != EEXIST)) - return 1; - - if (!(*s = save)) break; - } - - return 0; -} - -void mkdir_main(void) -{ - char **s; - - TT.mode = 0777; - - for (s=toys.optargs; *s; s++) { - if (do_mkdir(*s)) { - perror_msg("cannot create directory '%s'", *s); - toys.exitval = 1; - } - } -} -- cgit v1.2.3