build-remote: fix format string shenanigans

HintFmt(string) invokes the HintFmt("%s", literal) constructor,
which is not what we want here. Add a constructor with a proper name
and call that.

Next step: rename all the other ones to HintFmt::literal(string).

Fixes https://github.com/NixOS/nix/issues/10238
This commit is contained in:
K900 2024-03-26 10:55:15 +03:00
parent 290072ca1e
commit 2d4edb945b
2 changed files with 5 additions and 1 deletions

View file

@ -202,7 +202,7 @@ static int main_build_remote(int argc, char * * argv)
else else
drvstr = "<unknown>"; drvstr = "<unknown>";
auto error = HintFmt(errorText); auto error = HintFmt::fromFormatString(errorText);
error error
% drvstr % drvstr
% neededSystem % neededSystem

View file

@ -144,6 +144,10 @@ public:
: HintFmt("%s", Uncolored(literal)) : HintFmt("%s", Uncolored(literal))
{ } { }
static HintFmt fromFormatString(const std::string & format) {
return HintFmt(boost::format(format));
}
/** /**
* Interpolate the given arguments into the format string. * Interpolate the given arguments into the format string.
*/ */