/* * Copyright (c) 2020, Tom Lebreux * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include ErrorOr serenity_main(Main::Arguments arguments) { TRY(Core::System::pledge("stdio rpath")); bool decode = false; StringView filepath = {}; Core::ArgsParser args_parser; args_parser.add_option(decode, "Decode data", "decode", 'd'); args_parser.add_positional_argument(filepath, "", "file", Core::ArgsParser::Required::No); args_parser.parse(arguments); auto file = TRY(Core::Stream::File::open_file_or_standard_stream(filepath, Core::Stream::OpenMode::Read)); ByteBuffer buffer = TRY(file->read_until_eof()); TRY(Core::System::pledge("stdio")); if (decode) { auto decoded = TRY(decode_base64(buffer)); out("{}", StringView(decoded.bytes())); return 0; } auto encoded = encode_base64(buffer); outln("{}", encoded); return 0; }