33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||
|
|
|
||
|
|
module Crafter.Review:Driver_impl;
|
||
|
|
import :Driver;
|
||
|
|
import :Core;
|
||
|
|
import std;
|
||
|
|
|
||
|
|
namespace Crafter::Review {
|
||
|
|
namespace {
|
||
|
|
constexpr std::string_view Usage =
|
||
|
|
R"(usage: crafter-review [--config FILE] {run,freeze,slots,config} ...
|
||
|
|
crafter-review {seats,inventory,sql,totp,init,doc,browser,stop} ...
|
||
|
|
crafter-review --version
|
||
|
|
|
||
|
|
The pre-push review pipeline: adversarial lenses, one claude process per
|
||
|
|
inventory unit, against a frozen commit range.)";
|
||
|
|
}
|
||
|
|
|
||
|
|
std::int32_t Main(std::span<const std::string_view> args) {
|
||
|
|
const std::span<const std::string_view> rest = args.empty() ? args : args.subspan(1);
|
||
|
|
if (!rest.empty() && rest.front() == "--version") {
|
||
|
|
std::println("{}", DriverLine());
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
if (!rest.empty() && (rest.front() == "-h" || rest.front() == "--help")) {
|
||
|
|
std::println("{}", Usage);
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
std::println(std::cerr, "{}", Usage);
|
||
|
|
return 3;
|
||
|
|
}
|
||
|
|
}
|