logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git
commit: 3f4ec818db3a23693088ca390e5bba01764f11c4
parent 43ebed05b353a91a9717869880017d8dd0c46539
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Fri, 20 Sep 2024 03:07:54 +0200

cmd/mkdir: unify error message formatting

Diffstat:

Mcmd/mkdir.c12++++++------
Mtest-cmd/mkdir.sh27+++++++++++----------------
2 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/cmd/mkdir.c b/cmd/mkdir.c @@ -28,12 +28,12 @@ mkdir_simple(char *path, mode_t mode) assert(errno == 0); if(mkdir(path, mode) < 0) { - fprintf(stderr, "mkdir: Failed making directory '%s': %s\n", path, strerror(errno)); + fprintf(stderr, "%s: error: Failed making directory '%s': %s\n", argv0, path, strerror(errno)); errno = 0; return -1; } - if(mkdir_parents_verbose) fprintf(stderr, "mkdir: Made directory: %s\n", path); + if(mkdir_parents_verbose) fprintf(stderr, "%s: Made directory: %s\n", argv0, path); return 0; } @@ -71,16 +71,16 @@ main(int argc, char *argv[]) mode = new_mode(optarg, 0777, &errstr); if(errstr != NULL) { - fprintf(stderr, "mkdir: Failed parsing mode '%s': %s\n", optarg, errstr); + fprintf(stderr, "%s: error: Failed parsing mode '%s': %s\n", argv0, optarg, errstr); return 1; } break; case ':': - fprintf(stderr, "mkdir: Error: Missing operand for option: '-%c'\n", optopt); + fprintf(stderr, "%s: error: Missing operand for option: '-%c'\n", argv0, optopt); usage(); return 1; case '?': - fprintf(stderr, "mkdir: Error: Unrecognised option: '-%c'\n", optopt); + fprintf(stderr, "%s: error: Unrecognised option: '-%c'\n", argv0, optopt); usage(); return 1; default: @@ -95,7 +95,7 @@ main(int argc, char *argv[]) if(argc < 1) { - fprintf(stderr, "mkdir: Missing operand\n"); + fprintf(stderr, "%s: error: Missing operand\n", argv0); usage(); return 1; } diff --git a/test-cmd/mkdir.sh b/test-cmd/mkdir.sh @@ -5,29 +5,24 @@ WD="$(dirname "$0")" target="${WD}/../cmd/mkdir" target_chmod="${WD}/../cmd/chmod" -plans=10 +plans=15 . "${WD}/tap.sh" -t --exit=1 noargs '' 'mkdir: Missing operand +t --exit=1 noargs '' 'mkdir: error: Missing operand Usage: mkdir [-pv] [-m mode] path ... ' umask 002 -t_mkdir() { - t_err=0 - - test ! -e "$@" || return 1 - "${target}" "$@" || return 1 - test -d "$@" || t_err=1 - rm -r "$@" || t_err=1 - - return $t_err -} -t_cmd foo '' t_mkdir foo +t_cmd foo:absent '' rm -f foo +t foo:mkdir foo +t_cmd foo:isdir '' test -d foo +t_cmd foo:rm '' rm -r foo -t_cmd --exit=1 foo "mkdir: Failed making directory 'enoent/file': No such file or directory -" t_mkdir enoent/file +t_cmd enoent:absent '' test ! -e enoent +t --exit=1 foo:mkdir enoent/file "mkdir: error: Failed making directory 'enoent/file': No such file or directory +" +t_cmd enoent:still_absent '' test ! -e enoent t_mkdir_parents() { t_err=0 @@ -61,7 +56,7 @@ t_cmd verbose "mkdir: Made directory: verbose1 mkdir: Made directory: verbose2 " t_mkdir_v verbose1 verbose2 -t_cmd --exit=1 verbose_no_parents "mkdir: Failed making directory 'verbose_foo/verbose_bar': No such file or directory +t_cmd --exit=1 verbose_no_parents "mkdir: error: Failed making directory 'verbose_foo/verbose_bar': No such file or directory " t_mkdir_v verbose_foo/verbose_bar t_mkdir_mode() {