From fed2eb998c2e443d9b865c1f24b40591b9427fe4 Mon Sep 17 00:00:00 2001 From: killua Date: Mon, 16 Mar 2026 17:52:54 +0400 Subject: [PATCH] chore: add v2 version of the linux parser --- .../parser/platform_headers/linux_parser.hpp | 8 ++++++++ src/source/parser/platform_parsers/linux_parser.cpp | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/headers/parser/platform_headers/linux_parser.hpp b/src/headers/parser/platform_headers/linux_parser.hpp index 7e06159..ff16822 100644 --- a/src/headers/parser/platform_headers/linux_parser.hpp +++ b/src/headers/parser/platform_headers/linux_parser.hpp @@ -5,12 +5,20 @@ #define LINUX_PARSER_HPP #include +#include namespace argument_parser { class linux_parser : public base_parser { public: linux_parser(); }; + + namespace v2 { + class linux_parser : public v2::base_parser { + public: + linux_parser(); + }; + } // namespace v2 } // namespace argument_parser #endif diff --git a/src/source/parser/platform_parsers/linux_parser.cpp b/src/source/parser/platform_parsers/linux_parser.cpp index 9463814..2f7eff0 100644 --- a/src/source/parser/platform_parsers/linux_parser.cpp +++ b/src/source/parser/platform_parsers/linux_parser.cpp @@ -13,6 +13,19 @@ namespace argument_parser { parsed_arguments.emplace_back(line); } } + + namespace v2 { + linux_parser::linux_parser() { + std::ifstream command_line_file{"/proc/self/cmdline"}; + std::string program_name; + std::getline(command_line_file, program_name, '\0'); + set_program_name(program_name); + + for (std::string line; std::getline(command_line_file, line, '\0');) { + parsed_arguments.emplace_back(line); + } + } + } // namespace v2 } // namespace argument_parser #endif