cli: Allow streaming logfiles and artefacts
This commit is contained in:
parent
977fd6f415
commit
f5d3bd41d1
31
cli/main.cpp
31
cli/main.cpp
|
@ -445,7 +445,7 @@ int main(int argc, const char *argv[])
|
||||||
path = "/api/v0/build-action";
|
path = "/api/v0/build-action";
|
||||||
printer = printListOfBuildActions;
|
printer = printListOfBuildActions;
|
||||||
});
|
});
|
||||||
auto buildActionIdArg = ConfigValueArgument("id", '\0', "specifies the build action IDs", { "ID" });
|
auto buildActionIdArg = ConfigValueArgument("id", 'i', "specifies the build action IDs", { "ID" });
|
||||||
buildActionIdArg.setImplicit(true);
|
buildActionIdArg.setImplicit(true);
|
||||||
buildActionIdArg.setRequired(true);
|
buildActionIdArg.setRequired(true);
|
||||||
buildActionIdArg.setRequiredValueCount(Argument::varValueCount);
|
buildActionIdArg.setRequiredValueCount(Argument::varValueCount);
|
||||||
|
@ -456,10 +456,10 @@ int main(int argc, const char *argv[])
|
||||||
appendAsQueryParam(path, buildActionIdArg, "id");
|
appendAsQueryParam(path, buildActionIdArg, "id");
|
||||||
});
|
});
|
||||||
showBuildActionArg.setSubArguments({ &buildActionIdArg });
|
showBuildActionArg.setSubArguments({ &buildActionIdArg });
|
||||||
auto singleBuildActionIdArg = ConfigValueArgument("id", '\0', "specifies the build action ID", { "ID" });
|
auto singleBuildActionIdArg = ConfigValueArgument("id", 'i', "specifies the build action ID", { "ID" });
|
||||||
singleBuildActionIdArg.setImplicit(true);
|
singleBuildActionIdArg.setImplicit(true);
|
||||||
singleBuildActionIdArg.setRequired(true);
|
singleBuildActionIdArg.setRequired(true);
|
||||||
auto streamOutputBuildActionArg = OperationArgument("output", 'o', "stream build action output");
|
auto streamOutputBuildActionArg = OperationArgument("output", 'o', "stream overall build action output");
|
||||||
streamOutputBuildActionArg.setCallback([&path, &printer, &chunkHandler, &singleBuildActionIdArg](const ArgumentOccurrence &) {
|
streamOutputBuildActionArg.setCallback([&path, &printer, &chunkHandler, &singleBuildActionIdArg](const ArgumentOccurrence &) {
|
||||||
path = "/api/v0/build-action/output?";
|
path = "/api/v0/build-action/output?";
|
||||||
printer = printRawData;
|
printer = printRawData;
|
||||||
|
@ -467,6 +467,26 @@ int main(int argc, const char *argv[])
|
||||||
appendAsQueryParam(path, singleBuildActionIdArg, "id");
|
appendAsQueryParam(path, singleBuildActionIdArg, "id");
|
||||||
});
|
});
|
||||||
streamOutputBuildActionArg.setSubArguments({ &singleBuildActionIdArg });
|
streamOutputBuildActionArg.setSubArguments({ &singleBuildActionIdArg });
|
||||||
|
auto streamLogfileBuildActionArg = OperationArgument("logfile", 'f', "stream build action logfile");
|
||||||
|
auto buildActionFilePathArg = ConfigValueArgument("path", 'p', "specifies the file path", { "path" });
|
||||||
|
buildActionFilePathArg.setRequired(true);
|
||||||
|
streamLogfileBuildActionArg.setCallback([&path, &printer, &chunkHandler, &singleBuildActionIdArg, &buildActionFilePathArg](const ArgumentOccurrence &) {
|
||||||
|
path = "/api/v0/build-action/logfile?";
|
||||||
|
printer = printRawData;
|
||||||
|
chunkHandler = printChunk;
|
||||||
|
appendAsQueryParam(path, singleBuildActionIdArg, "id");
|
||||||
|
appendAsQueryParam(path, buildActionFilePathArg, "name");
|
||||||
|
});
|
||||||
|
streamLogfileBuildActionArg.setSubArguments({ &singleBuildActionIdArg, &buildActionFilePathArg });
|
||||||
|
auto streamArtefactBuildActionArg = OperationArgument("artefact", 'a', "stream build action artefact");
|
||||||
|
streamArtefactBuildActionArg.setCallback([&path, &printer, &chunkHandler, &singleBuildActionIdArg, &buildActionFilePathArg](const ArgumentOccurrence &) {
|
||||||
|
path = "/api/v0/build-action/artefact?";
|
||||||
|
printer = printRawData;
|
||||||
|
chunkHandler = printChunk;
|
||||||
|
appendAsQueryParam(path, singleBuildActionIdArg, "id");
|
||||||
|
appendAsQueryParam(path, buildActionFilePathArg, "name");
|
||||||
|
});
|
||||||
|
streamArtefactBuildActionArg.setSubArguments({ &singleBuildActionIdArg, &buildActionFilePathArg });
|
||||||
auto createBuildActionArg = OperationArgument("create", '\0', "creates and starts a new build action (or pre-defined task)");
|
auto createBuildActionArg = OperationArgument("create", '\0', "creates and starts a new build action (or pre-defined task)");
|
||||||
auto taskArg = ConfigValueArgument("task", '\0', "specifies the pre-defined task to run", { "task" });
|
auto taskArg = ConfigValueArgument("task", '\0', "specifies the pre-defined task to run", { "task" });
|
||||||
auto typeArg = ConfigValueArgument("type", '\0', "specifies the action type", { "type" });
|
auto typeArg = ConfigValueArgument("type", '\0', "specifies the action type", { "type" });
|
||||||
|
@ -528,8 +548,9 @@ int main(int argc, const char *argv[])
|
||||||
appendAsQueryParam(path, buildActionIdArg, "id");
|
appendAsQueryParam(path, buildActionIdArg, "id");
|
||||||
});
|
});
|
||||||
stopBuildActionArg.setSubArguments({ &buildActionIdArg });
|
stopBuildActionArg.setSubArguments({ &buildActionIdArg });
|
||||||
actionArg.setSubArguments({ &listActionsArg, &showBuildActionArg, &streamOutputBuildActionArg, &createBuildActionArg, &deleteBuildActionArg,
|
actionArg.setSubArguments(
|
||||||
&cloneBuildActionArg, &startBuildActionArg, &stopBuildActionArg });
|
{ &listActionsArg, &showBuildActionArg, &streamOutputBuildActionArg, &streamLogfileBuildActionArg, &streamArtefactBuildActionArg,
|
||||||
|
&createBuildActionArg, &deleteBuildActionArg, &cloneBuildActionArg, &startBuildActionArg, &stopBuildActionArg });
|
||||||
auto apiArg = OperationArgument("api", '\0', "Invoke a generic API request:");
|
auto apiArg = OperationArgument("api", '\0', "Invoke a generic API request:");
|
||||||
auto pathArg = ConfigValueArgument("path", '\0', "specifies the route's path without prefix", { "path/of/route?foo=bar&bar=foo" });
|
auto pathArg = ConfigValueArgument("path", '\0', "specifies the route's path without prefix", { "path/of/route?foo=bar&bar=foo" });
|
||||||
pathArg.setImplicit(true);
|
pathArg.setImplicit(true);
|
||||||
|
|
Loading…
Reference in New Issue