aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiam Mitchell <[email protected]>2025-01-14 16:21:18 -0800
committerLiam Mitchell <[email protected]>2025-01-14 16:21:18 -0800
commitb526b564bc9c516f2f8aec42530b96eb70b01ba8 (patch)
treed62ba6611501b40527dc7233e2b13dfbea7281ad
parent5.5.17-pre1 (diff)
downloadzen-lm/builds-metadata-integer-changelist.tar.xz
zen-lm/builds-metadata-integer-changelist.zip
Add builds metadata changelist/codeChangelist parameters as integers rather than strings, to allow proper searching via Jupiter APIslm/builds-metadata-integer-changelist
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp
index 5e18a3624..fb54098d9 100644
--- a/src/zen/cmds/projectstore_cmd.cpp
+++ b/src/zen/cmds/projectstore_cmd.cpp
@@ -1277,7 +1277,26 @@ ExportOplogCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
{
throw std::runtime_error(fmt::format("builds metadata key-value pair '{}' is malformed", Pair));
}
- MetaDataWriter.AddString(Pair.substr(0, SplitPos), Pair.substr(SplitPos + 1));
+
+ const std::string_view Key = Pair.substr(0, SplitPos);
+ const std::string_view Value = Pair.substr(SplitPos + 1);
+
+ if (Key == "changelist" || Key == "codeChangelist")
+ {
+ uint32_t ParsedValue;
+ std::from_chars_result Result = std::from_chars(Value.data(), Value.data() + Value.size(), ParsedValue);
+ if (Result.ec != std::errc())
+ {
+ throw std::runtime_error(fmt::format("invalid value for changelist {}, expected integer", Value));
+ }
+
+ MetaDataWriter.AddInteger(Key, ParsedValue);
+ }
+ else
+ {
+ MetaDataWriter.AddString(Key, Value);
+ }
+
return true;
});
CbObject MetaData = MetaDataWriter.Save();