diff options
author | Patrick McDermott <patrick.mcdermott@libiquity.com> | 2023-06-27 13:09:05 (EDT) |
---|---|---|
committer | Patrick McDermott <patrick.mcdermott@libiquity.com> | 2023-06-27 13:09:05 (EDT) |
commit | 1e16609b8eac585fc0679ca4466b2c1f56ecebae (patch) | |
tree | 4a8b949d87b4dc0cdfe64d65c9db1160d3ae7e78 | |
parent | e43c5b7cd456449ebcf06c15c08473071f9f6ad5 (diff) |
mknod: Parse mode option argument
-rw-r--r-- | helpers/mknod.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/helpers/mknod.c b/helpers/mknod.c index 93ef974..7328d66 100644 --- a/helpers/mknod.c +++ b/helpers/mknod.c @@ -26,6 +26,8 @@ #include <string.h> #include <sys/stat.h> #include <unistd.h> +#include "defs.h" +#include "mode.h" #ifdef ENABLE_NLS #include <locale.h> @@ -130,7 +132,16 @@ main(int argc, char *argv[]) #endif switch(opt) { case 'm': - /* TODO: Parse mode. */ + mode = umask(0); + umask(mode); + mode = 0666 ^ mode; + if (opkg_opk_helper_mode_parse(mode, optarg, + &mode) != OPKG_OPK_OK) { + fprintf(stderr, _("%s: Invalid mode " + "\"%s\"\n"), + program_name, optarg); + return EXIT_FAILURE; + } break; default: fprintf(stderr, _("%s: Warning: Unknown option:" |