ladybird/Libraries/LibCore/Version.cpp

32 lines
816 B
C++

/*
* Copyright (c) 2021, Mahmoud Mandour <ma.mandourr@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/String.h>
#include <LibCore/Environment.h>
#include <LibCore/Version.h>
namespace Core::Version {
ErrorOr<String> 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;
}
}