From 3afce86e8356d397d19d43845dfcd6cb66dac761 Mon Sep 17 00:00:00 2001 From: Eli Youngs Date: Sat, 16 Apr 2022 21:43:34 -0700 Subject: [PATCH] mkfifo: Add support for setting permissions with -m --- Userland/Utilities/mkfifo.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Userland/Utilities/mkfifo.cpp b/Userland/Utilities/mkfifo.cpp index 6b683c3c0f..3cd722997e 100644 --- a/Userland/Utilities/mkfifo.cpp +++ b/Userland/Utilities/mkfifo.cpp @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -13,14 +14,21 @@ ErrorOr serenity_main(Main::Arguments arguments) { TRY(Core::System::pledge("stdio dpath")); + String mode_string; + mode_t mask_reference_mode = 0777; mode_t mode = 0666; Vector paths; Core::ArgsParser args_parser; - // FIXME: add -m for file modes + args_parser.add_option(mode_string, "Set FIFO permissions", "mode", 'm', "mode"); args_parser.add_positional_argument(paths, "Paths of FIFOs to create", "paths"); args_parser.parse(arguments); + if (!mode_string.is_empty()) { + auto mask = TRY(Core::FilePermissionsMask::parse(mode_string)); + mode = mask.apply(mask_reference_mode); + } + int exit_code = 0; for (auto path : paths) { auto error_or_void = Core::System::mkfifo(path, mode);