Skip to content

Commit ce78bf1

Browse files
author
epriestley
committedDec 27, 2013
Make all bin/* scripts locate their workflows dynamically
Summary: Ref T2015. Not directly related to Drydock, but I bumped into this. All these scripts currently enumerate their workflows explicitly. Instead, use `PhutilSymbolLoader` to automatically discover workflows. This reduces code duplication and errors (see all the bad `extends` this diff fixes) and lets third parties add new workflows (not clearly valuable?). Test Plan: Ran `bin/x help` for each modified script. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T2015 Differential Revision: https://secure.phabricator.com/D7840
1 parent e397103 commit ce78bf1

24 files changed

+73
-120
lines changed
 

‎scripts/diviner/diviner.php

+5-6
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$args->parseWorkflows(
18-
array(
19-
new DivinerGenerateWorkflow(),
20-
new DivinerAtomizeWorkflow(),
21-
new PhutilHelpArgumentWorkflow(),
22-
));
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('DivinerWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
21+
$args->parseWorkflows($workflows);

‎scripts/drydock/drydock_control.php

+4-8
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new DrydockManagementLeaseWorkflow(),
19-
new DrydockManagementCloseWorkflow(),
20-
new DrydockManagementReleaseWorkflow(),
21-
new DrydockManagementCreateResourceWorkflow(),
22-
new PhutilHelpArgumentWorkflow(),
23-
);
24-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('DrydockManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2521
$args->parseWorkflows($workflows);

‎scripts/fact/manage_facts.php

+4-9
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,8 @@
1515
);
1616
$args->parseStandardArguments();
1717

18-
$workflows = array(
19-
new PhabricatorFactManagementDestroyWorkflow(),
20-
new PhabricatorFactManagementAnalyzeWorkflow(),
21-
new PhabricatorFactManagementStatusWorkflow(),
22-
new PhabricatorFactManagementListWorkflow(),
23-
new PhabricatorFactManagementCursorsWorkflow(),
24-
new PhutilHelpArgumentWorkflow(),
25-
);
26-
18+
$workflows = id(new PhutilSymbolLoader())
19+
->setAncestorClass('PhabricatorFactManagementWorkflow')
20+
->loadObjects();
21+
$workflows[] = new PhutilHelpArgumentWorkflow();
2722
$args->parseWorkflows($workflows);

‎scripts/files/manage_files.php

+4-8
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorFilesManagementEnginesWorkflow(),
19-
new PhabricatorFilesManagementMigrateWorkflow(),
20-
new PhabricatorFilesManagementRebuildWorkflow(),
21-
new PhabricatorFilesManagementPurgeWorkflow(),
22-
new PhutilHelpArgumentWorkflow(),
23-
);
24-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorFilesManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2521
$args->parseWorkflows($workflows);

‎scripts/lipsum/manage_lipsum.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorLipsumGenerateWorkflow(),
19-
new PhutilHelpArgumentWorkflow(),
20-
);
21-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorLipsumManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2221
$args->parseWorkflows($workflows);

‎scripts/mail/manage_mail.php

+5-11
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,9 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhutilHelpArgumentWorkflow(),
19-
new PhabricatorMailManagementResendWorkflow(),
20-
new PhabricatorMailManagementShowOutboundWorkflow(),
21-
new PhabricatorMailManagementShowInboundWorkflow(),
22-
new PhabricatorMailManagementSendTestWorkflow(),
23-
new PhabricatorMailManagementReceiveTestWorkflow(),
24-
new PhabricatorMailManagementListInboundWorkflow(),
25-
new PhabricatorMailManagementListOutboundWorkflow(),
26-
);
27-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorMailManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2821
$args->parseWorkflows($workflows);
22+

‎scripts/repository/manage_repositories.php

+4-12
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,8 @@
1515
);
1616
$args->parseStandardArguments();
1717

18-
$workflows = array(
19-
new PhabricatorRepositoryManagementPullWorkflow(),
20-
new PhabricatorRepositoryManagementDiscoverWorkflow(),
21-
new PhabricatorRepositoryManagementEditWorkflow(),
22-
new PhabricatorRepositoryManagementListWorkflow(),
23-
new PhabricatorRepositoryManagementDeleteWorkflow(),
24-
new PhabricatorRepositoryManagementMarkImportedWorkflow(),
25-
new PhabricatorRepositoryManagementLookupUsersWorkflow(),
26-
new PhabricatorRepositoryManagementImportingWorkflow(),
27-
new PhutilHelpArgumentWorkflow(),
28-
);
29-
18+
$workflows = id(new PhutilSymbolLoader())
19+
->setAncestorClass('PhabricatorRepositoryManagementWorkflow')
20+
->loadObjects();
21+
$workflows[] = new PhutilHelpArgumentWorkflow();
3022
$args->parseWorkflows($workflows);

‎scripts/search/manage_search.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorSearchManagementIndexWorkflow(),
19-
new PhutilHelpArgumentWorkflow(),
20-
);
21-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorSearchManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2221
$args->parseWorkflows($workflows);

‎scripts/setup/manage_audit.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorAuditManagementDeleteWorkflow(),
19-
new PhutilHelpArgumentWorkflow(),
20-
);
21-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorAuditManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2221
$args->parseWorkflows($workflows);

‎scripts/setup/manage_auth.php

+4-7
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorAuthManagementRecoverWorkflow(),
19-
new PhabricatorAuthManagementRefreshWorkflow(),
20-
new PhabricatorAuthManagementLDAPWorkflow(),
21-
new PhutilHelpArgumentWorkflow(),
22-
);
23-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorAuthManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2421
$args->parseWorkflows($workflows);

‎scripts/setup/manage_config.php

+4-8
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorConfigManagementListWorkflow(),
19-
new PhabricatorConfigManagementSetWorkflow(),
20-
new PhabricatorConfigManagementGetWorkflow(),
21-
new PhabricatorConfigManagementDeleteWorkflow(),
22-
new PhutilHelpArgumentWorkflow(),
23-
);
24-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorConfigManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2521
$args->parseWorkflows($workflows);

‎scripts/setup/manage_feed.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorFeedManagementRepublishWorkflow(),
19-
new PhutilHelpArgumentWorkflow(),
20-
);
21-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorFeedManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2221
$args->parseWorkflows($workflows);

‎scripts/setup/manage_harbormaster.php

-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,4 @@
1818
->setAncestorClass('HarbormasterManagementWorkflow')
1919
->loadObjects();
2020
$workflows[] = new PhutilHelpArgumentWorkflow();
21-
2221
$args->parseWorkflows($workflows);

‎scripts/setup/manage_policy.php

+4-6
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414
);
1515
$args->parseStandardArguments();
1616

17-
$workflows = array(
18-
new PhabricatorPolicyManagementShowWorkflow(),
19-
new PhabricatorPolicyManagementUnlockWorkflow(),
20-
new PhutilHelpArgumentWorkflow(),
21-
);
22-
17+
$workflows = id(new PhutilSymbolLoader())
18+
->setAncestorClass('PhabricatorPolicyManagementWorkflow')
19+
->loadObjects();
20+
$workflows[] = new PhutilHelpArgumentWorkflow();
2321
$args->parseWorkflows($workflows);

‎scripts/sql/manage_storage.php

+3-8
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,9 @@
9999
exit(1);
100100
}
101101

102-
$workflows = array(
103-
new PhabricatorStorageManagementDatabasesWorkflow(),
104-
new PhabricatorStorageManagementDestroyWorkflow(),
105-
new PhabricatorStorageManagementDumpWorkflow(),
106-
new PhabricatorStorageManagementStatusWorkflow(),
107-
new PhabricatorStorageManagementProbeWorkflow(),
108-
new PhabricatorStorageManagementUpgradeWorkflow(),
109-
);
102+
$workflows = id(new PhutilSymbolLoader())
103+
->setAncestorClass('PhabricatorStorageManagementWorkflow')
104+
->loadObjects();
110105

111106
$patches = PhabricatorSQLPatchList::buildAllPatches();
112107

‎src/__phutil_library_map__.php

+8-8
Original file line numberDiff line numberDiff line change
@@ -3740,7 +3740,7 @@
37403740
'PhabricatorBuiltinPatchList' => 'PhabricatorSQLPatchList',
37413741
'PhabricatorBusyExample' => 'PhabricatorUIExample',
37423742
'PhabricatorCacheDAO' => 'PhabricatorLiskDAO',
3743-
'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorSearchManagementWorkflow',
3743+
'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorCacheManagementWorkflow',
37443744
'PhabricatorCacheManagementWorkflow' => 'PhabricatorManagementWorkflow',
37453745
'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController',
37463746
'PhabricatorCalendarController' => 'PhabricatorController',
@@ -4113,13 +4113,13 @@
41134113
'PhabricatorMailImplementationPHPMailerLiteAdapter' => 'PhabricatorMailImplementationAdapter',
41144114
'PhabricatorMailImplementationSendGridAdapter' => 'PhabricatorMailImplementationAdapter',
41154115
'PhabricatorMailImplementationTestAdapter' => 'PhabricatorMailImplementationAdapter',
4116-
'PhabricatorMailManagementListInboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
4117-
'PhabricatorMailManagementListOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
4118-
'PhabricatorMailManagementReceiveTestWorkflow' => 'PhabricatorSearchManagementWorkflow',
4119-
'PhabricatorMailManagementResendWorkflow' => 'PhabricatorSearchManagementWorkflow',
4120-
'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorSearchManagementWorkflow',
4121-
'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
4122-
'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
4116+
'PhabricatorMailManagementListInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
4117+
'PhabricatorMailManagementListOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
4118+
'PhabricatorMailManagementReceiveTestWorkflow' => 'PhabricatorMailManagementWorkflow',
4119+
'PhabricatorMailManagementResendWorkflow' => 'PhabricatorMailManagementWorkflow',
4120+
'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorMailManagementWorkflow',
4121+
'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
4122+
'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
41234123
'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
41244124
'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
41254125
'PhabricatorMailingListPHIDTypeList' => 'PhabricatorPHIDType',

‎src/applications/cache/management/PhabricatorCacheManagementPurgeWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorCacheManagementPurgeWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorCacheManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementListInboundWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementListInboundWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementListOutboundWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementListOutboundWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementReceiveTestWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementReceiveTestWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementResendWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementResendWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementSendTestWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementShowInboundWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

‎src/applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
final class PhabricatorMailManagementShowOutboundWorkflow
4-
extends PhabricatorSearchManagementWorkflow {
4+
extends PhabricatorMailManagementWorkflow {
55

66
protected function didConstruct() {
77
$this

0 commit comments

Comments
 (0)
Failed to load comments.