#include <os/ArgumentParser.h> #include <os/File.h> #include <stddef.h> #include <stdlib.h> #include <time.h> Result<int> luna_main(int argc, char** argv) { StringView date; os::ArgumentParser parser; parser.add_description("Display the current (or another) date and time."_sv); parser.add_system_program_info("date"_sv); parser.add_value_argument(date, 'd', "date"_sv, "the UNIX timestamp to display instead of the current time"_sv); parser.parse(argc, argv); time_t now; if (date.is_empty()) { now = time(NULL); } else { now = strtol(date.chars(), nullptr, 10); } os::print("%s", ctime(&now)); return 0; }