blob: 89e2f371b1ccd2ffe5d3583f7cebfcfd094c0e84 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromecast/crash/build_info.h"
#include <string>
#include "chromecast/base/version.h"
namespace chromecast {
namespace {
constexpr char kEngVariant[] = "eng";
constexpr char kUserVariant[] = "user";
} // namespace
const std::string VersionToCrashString(const std::string& cast_build_revision) {
// Incremental number for eng+user builds is too long for Crash server
// so cap it to "eng" or "user".
for (std::string infix : {kEngVariant, kUserVariant}) {
size_t index = cast_build_revision.find(infix);
if (index != std::string::npos) {
return cast_build_revision.substr(
0, index + infix.size()); // Truncate after ".eng" / ".user".
}
}
return cast_build_revision;
}
const std::string GetVersionString() {
return VersionToCrashString(CAST_BUILD_REVISION);
}
const std::string VersionToVariant(const std::string& cast_build_revision) {
for (std::string variant : {kEngVariant, kUserVariant}) {
if (cast_build_revision.find(variant) != std::string::npos) {
return variant;
}
}
return CAST_IS_DEBUG_BUILD() ? kEngVariant : kUserVariant;
}
const std::string GetBuildVariant() {
return VersionToVariant(CAST_BUILD_REVISION);
}
} // namespace chromecast