diff --git a/bin/phage b/bin/phage new file mode 120000 index 00000000..0817a287 --- /dev/null +++ b/bin/phage @@ -0,0 +1 @@ +../scripts/phage.php \ No newline at end of file diff --git a/scripts/phage.php b/scripts/phage.php new file mode 100755 index 00000000..1aa5c8f7 --- /dev/null +++ b/scripts/phage.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +parseStandardArguments(); + +$args->parsePartial(array()); + + +// TODO: This is pretty minimal and should be shared with "arc". +$working_directory = getcwd(); +$working_copy = ArcanistWorkingCopyIdentity::newFromPath($working_directory); +$config = id(new ArcanistConfigurationManager()) + ->setWorkingCopyIdentity($working_copy); + +foreach ($config->getProjectConfig('load') as $load) { + $load = Filesystem::resolvePath($working_copy->getProjectRoot().'/'.$load); + phutil_load_library($load); +} + + +$workflows = id(new PhutilClassMapQuery()) + ->setAncestorClass('PhageWorkflow') + ->execute(); +$workflows[] = new PhutilHelpArgumentWorkflow(); +$args->parseWorkflows($workflows); diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 44494ba0..73b8d638 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -437,6 +437,7 @@ phutil_register_library_map(array( 'ArcanistXUnitTestResultParser' => 'unit/parser/ArcanistXUnitTestResultParser.php', 'CSharpToolsTestEngine' => 'unit/engine/CSharpToolsTestEngine.php', 'NoseTestEngine' => 'unit/engine/NoseTestEngine.php', + 'PhageWorkflow' => 'phage/workflow/PhageWorkflow.php', 'PhpunitTestEngine' => 'unit/engine/PhpunitTestEngine.php', 'PhpunitTestEngineTestCase' => 'unit/engine/__tests__/PhpunitTestEngineTestCase.php', 'PhutilTestCase' => 'unit/engine/phutil/PhutilTestCase.php', @@ -879,6 +880,7 @@ phutil_register_library_map(array( 'ArcanistXUnitTestResultParser' => 'Phobject', 'CSharpToolsTestEngine' => 'XUnitTestEngine', 'NoseTestEngine' => 'ArcanistUnitTestEngine', + 'PhageWorkflow' => 'PhutilArgumentWorkflow', 'PhpunitTestEngine' => 'ArcanistUnitTestEngine', 'PhpunitTestEngineTestCase' => 'PhutilTestCase', 'PhutilTestCase' => 'Phobject', diff --git a/src/phage/workflow/PhageWorkflow.php b/src/phage/workflow/PhageWorkflow.php new file mode 100644 index 00000000..2506f79a --- /dev/null +++ b/src/phage/workflow/PhageWorkflow.php @@ -0,0 +1,10 @@ +