diff --git a/Userland/Libraries/LibCore/Version.cpp b/Userland/Libraries/LibCore/Version.cpp index 8f5b646c734..fa9437595a6 100644 --- a/Userland/Libraries/LibCore/Version.cpp +++ b/Userland/Libraries/LibCore/Version.cpp @@ -5,12 +5,27 @@ */ #include +#include #include namespace Core::Version { ErrorOr read_long_version_string() { + auto validate_git_hash = [](auto hash) { + if (hash.length() < 4 || hash.length() > 40) + return false; + for (auto ch : hash) { + if (!is_ascii_hex_digit(ch)) + return false; + } + return true; + }; + + auto maybe_git_hash = Core::Environment::get("LADYBIRD_GIT_VERSION"sv); + + if (maybe_git_hash.has_value() && validate_git_hash(maybe_git_hash.value())) + return MUST(String::formatted("Version 1.0-{}", maybe_git_hash.value())); return "Version 1.0"_string; }