in src/shipit/phase/ShipItPhaseRunner.php [110:139]
final public function getCLIArguments(): vec<ShipItCLIArgument> {
$args = $this->getBasicCLIArguments();
foreach ($this->phases as $phase) {
$args = Vec\concat($args, $phase->getCLIArguments());
}
// Check for correctness
foreach ($args as $arg) {
$description = Shapes::idx($arg, 'description');
$replacement = Shapes::idx($arg, 'replacement');
$handler = Shapes::idx($arg, 'write');
$name = $arg['long_name'];
invariant(
!($description !== null && $replacement !== null),
'--%s is documented and deprecated',
$name,
);
invariant(
!(
$handler !== null && !($description !== null || $replacement !== null)
),
'--%s does something, and is undocumented',
$name,
);
}
return $args;
}