1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-24 15:52:41 +01:00
phorge-phorge/src/applications/daemon/management/PhabricatorDaemonManagementLaunchWorkflow.php
epriestley 48fc3126a1 Support autoscaling daemons in phd
Summary: Ref T7352. This supports passing autoscaling configuration to daemons, and adds `debug --autoscale`.

Test Plan: See D11711.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7352

Differential Revision: https://secure.phabricator.com/D11860
2015-02-24 14:50:34 -08:00

57 lines
1.3 KiB
PHP

<?php
final class PhabricatorDaemonManagementLaunchWorkflow
extends PhabricatorDaemonManagementWorkflow {
public function shouldParsePartial() {
return true;
}
protected function didConstruct() {
$this
->setName('launch')
->setExamples('**launch** [n] __daemon__ [options]')
->setSynopsis(pht(
'Start a specific __daemon__, or __n__ copies of a specific '.
'__daemon__.'))
->setArguments(
array(
array(
'name' => 'argv',
'wildcard' => true,
),
));
}
public function execute(PhutilArgumentParser $args) {
$argv = $args->getArg('argv');
$daemon_count = 1;
if ($argv) {
if (is_numeric(head($argv))) {
$daemon_count = array_shift($argv);
}
if ($daemon_count < 1) {
throw new PhutilArgumentUsageException(
pht('You must launch at least one daemon.'));
}
}
if (!$argv) {
throw new PhutilArgumentUsageException(
pht('You must specify which daemon to launch.'));
}
$daemon = array();
$daemon['class'] = array_shift($argv);
$daemon['argv'] = $argv;
$daemons = array_fill(0, $daemon_count, $daemon);
$this->launchDaemons($daemons, $is_debug = false);
return 0;
}
}