21 lines
1.1 KiB
PHP
21 lines
1.1 KiB
PHP
<?php
|
|
|
|
use Tempo\Purchasing\Delivery\CodeDeployment;
|
|
|
|
require dirname(__DIR__).'/integrations/sgf/operational/CodeDeployment.php';
|
|
try {
|
|
$action = $argv[1] ?? '';
|
|
$deployment = new CodeDeployment($argv[2] ?? '');
|
|
$result = match ($action) {
|
|
'plan' => $deployment->plan($argv[3] ?? '', $argv[4] ?? ''),
|
|
'apply' => $deployment->apply($argv[3] ?? '', $argv[4] ?? '', $argv[5] ?? '', $argv[6] ?? '', ($argv[7] ?? '') === '--offline'),
|
|
'rollback' => $deployment->rollback($argv[3] ?? '', $argv[4] ?? '', ($argv[5] ?? '') === '--offline'),
|
|
'cache' => $deployment->rebuildCaches($argv[3] ?? '', $argv[4] ?? '', ($argv[5] ?? '') === '--offline'),
|
|
default => throw new RuntimeException('Usage: plan <host> <bundle> <manifest-sha> | apply <host> <bundle> <manifest-sha> <target-sha> <operator> --offline | rollback|cache <host> <deployment-id> <operator> --offline'),
|
|
};
|
|
echo json_encode($result, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR)."\n";
|
|
} catch (Throwable $error) {
|
|
fwrite(STDERR, $error->getMessage()."\n");
|
|
exit(1);
|
|
}
|