diff --git a/scripts/repository/manage_repositories.php b/scripts/repository/manage_repositories.php index 694910a83d..e41bac6ab9 100755 --- a/scripts/repository/manage_repositories.php +++ b/scripts/repository/manage_repositories.php @@ -20,6 +20,7 @@ $workflows = array( new PhabricatorRepositoryManagementDiscoverWorkflow(), new PhabricatorRepositoryManagementListWorkflow(), new PhabricatorRepositoryManagementDeleteWorkflow(), + new PhabricatorRepositoryManagementMarkImportedWorkflow(), new PhutilHelpArgumentWorkflow(), ); diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 87463605d9..7063139b22 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1661,6 +1661,7 @@ phutil_register_library_map(array( 'PhabricatorRepositoryManagementDeleteWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementDeleteWorkflow.php', 'PhabricatorRepositoryManagementDiscoverWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementDiscoverWorkflow.php', 'PhabricatorRepositoryManagementListWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementListWorkflow.php', + 'PhabricatorRepositoryManagementMarkImportedWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementMarkImportedWorkflow.php', 'PhabricatorRepositoryManagementPullWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementPullWorkflow.php', 'PhabricatorRepositoryManagementWorkflow' => 'applications/repository/management/PhabricatorRepositoryManagementWorkflow.php', 'PhabricatorRepositoryMercurialCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/PhabricatorRepositoryMercurialCommitChangeParserWorker.php', @@ -4013,6 +4014,7 @@ phutil_register_library_map(array( 'PhabricatorRepositoryManagementDeleteWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementDiscoverWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementListWorkflow' => 'PhabricatorRepositoryManagementWorkflow', + 'PhabricatorRepositoryManagementMarkImportedWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementPullWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorRepositoryMercurialCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker', diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementMarkImportedWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementMarkImportedWorkflow.php new file mode 100644 index 0000000000..7c8d5fb825 --- /dev/null +++ b/src/applications/repository/management/PhabricatorRepositoryManagementMarkImportedWorkflow.php @@ -0,0 +1,67 @@ +setName('mark-imported') + ->setExamples('**mark-imported** __repository__ ...') + ->setSynopsis('Mark __repository__, named by callsign, as imported.') + ->setArguments( + array( + array( + 'name' => 'mark-not-imported', + 'help' => 'Instead, mark repositories as NOT imported.', + ), + array( + 'name' => 'repos', + 'wildcard' => true, + ), + )); + } + + public function execute(PhutilArgumentParser $args) { + $repos = $this->loadRepositories($args, 'repos'); + + if (!$repos) { + throw new PhutilArgumentUsageException( + "Specify one or more repositories to mark imported, by callsign."); + } + + $new_importing_value = (bool)$args->getArg('mark-not-imported'); + + $console = PhutilConsole::getConsole(); + foreach ($repos as $repo) { + $callsign = $repo->getCallsign(); + + if ($repo->isImporting() && $new_importing_value) { + $console->writeOut( + "%s\n", + pht("Repository '%s' is already importing.", $callsign)); + } else if (!$repo->isImporting() && !$new_importing_value) { + $console->writeOut( + "%s\n", + pht("Repository '%s' is already imported.", $callsign)); + } else { + if ($new_importing_value) { + $console->writeOut( + "%s\n", + pht("Marking repository '%s' as importing.", $callsign)); + } else { + $console->writeOut( + "%s\n", + pht("Marking repository '%s' as imported.", $callsign)); + } + + $repo->setDetail('importing', $new_importing_value); + $repo->save(); + } + } + + $console->writeOut("Done.\n"); + + return 0; + } + +}