diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index e03f08c800..f04cf50568 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -160,6 +160,7 @@ target_link_libraries(rmdir LibMain) target_link_libraries(run-tests LibRegex LibCoredump) target_link_libraries(shot LibGUI LibMain) target_link_libraries(shuf LibMain) +target_link_libraries(shutdown LibMain) target_link_libraries(sql LibLine LibMain LibSQL LibIPC) target_link_libraries(sort LibMain) target_link_libraries(stat LibMain) diff --git a/Userland/Utilities/shutdown.cpp b/Userland/Utilities/shutdown.cpp index 80f724f4ce..130f74efa5 100644 --- a/Userland/Utilities/shutdown.cpp +++ b/Userland/Utilities/shutdown.cpp @@ -1,25 +1,24 @@ /* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2021, Liav A. + * Copyright (c) 2022, Alex Major * * SPDX-License-Identifier: BSD-2-Clause */ +#include +#include #include #include #include -int main(int, char**) +ErrorOr serenity_main(Main::Arguments) { - int power_state_switch_node = open("/sys/firmware/power_state", O_WRONLY); - if (power_state_switch_node < 0) { - perror("open"); - return 1; - } - const char* value = "2"; - if (write(power_state_switch_node, value, 1) < 0) { - perror("write"); - return 1; - } + auto file = TRY(Core::Stream::File::open("/sys/firmware/power_state", Core::Stream::OpenMode::Write)); + + const String file_contents = "2"; + TRY(file->write(file_contents.bytes())); + file->close(); + return 0; }