diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 9486bbe9fa..77b006ec20 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -129,6 +129,7 @@ target_link_libraries(markdown-check LibMarkdown) target_link_libraries(matroska LibVideo) target_link_libraries(md LibMarkdown) target_link_libraries(mkdir LibMain) +target_link_libraries(mkfifo LibMain) target_link_libraries(mknod LibMain) target_link_libraries(nc LibMain) target_link_libraries(netstat LibMain) diff --git a/Userland/Utilities/mkfifo.cpp b/Userland/Utilities/mkfifo.cpp index c641ab43c3..6b683c3c0f 100644 --- a/Userland/Utilities/mkfifo.cpp +++ b/Userland/Utilities/mkfifo.cpp @@ -5,29 +5,26 @@ */ #include -#include +#include +#include #include -#include -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { - if (pledge("stdio dpath", nullptr) < 0) { - perror("pledge"); - return 1; - } + TRY(Core::System::pledge("stdio dpath")); mode_t mode = 0666; - Vector paths; + Vector paths; Core::ArgsParser args_parser; // FIXME: add -m for file modes args_parser.add_positional_argument(paths, "Paths of FIFOs to create", "paths"); - args_parser.parse(argc, argv); + args_parser.parse(arguments); int exit_code = 0; - for (auto path : paths) { - if (mkfifo(path, mode) < 0) { + auto error_or_void = Core::System::mkfifo(path, mode); + if (error_or_void.is_error()) { perror("mkfifo"); exit_code = 1; }