Path: blob/master/src/applications/calendar/management/PhabricatorCalendarManagementReloadWorkflow.php
12256 views
<?php12final class PhabricatorCalendarManagementReloadWorkflow3extends PhabricatorCalendarManagementWorkflow {45protected function didConstruct() {6$this7->setName('reload')8->setExamples('**reload** [options] __id__ ...')9->setSynopsis(10pht(11'Reload event imports from the command line. Useful for '.12'testing and debugging importers.'))13->setArguments(14array(15array(16'name' => 'ids',17'wildcard' => true,18'help' => pht('List of import IDs to reload.'),19),20));21}2223public function execute(PhutilArgumentParser $args) {24$viewer = $this->getViewer();2526$ids = $args->getArg('ids');27if (!$ids) {28throw new PhutilArgumentUsageException(29pht('Specify at least one import ID to reload.'));30}3132$imports = id(new PhabricatorCalendarImportQuery())33->setViewer($viewer)34->withIDs($ids)35->execute();36$imports = mpull($imports, null, 'getID');37foreach ($ids as $id) {38if (empty($imports[$id])) {39throw new PhutilArgumentUsageException(40pht(41'Unable to load Calendar import with ID "%s".',42$id));43}44}4546$imports = array_select_keys($imports, $ids);4748foreach ($imports as $import) {49echo tsprintf(50"%s\n",51pht(52'Importing "%s"...',53$import->getDisplayName()));5455$engine = $import->getEngine();5657$engine->importEventsFromSource($viewer, $import, false);58}5960echo tsprintf(61"%s\n",62pht('Done.'));6364return 0;65}6667}686970