Path: blob/master/src/applications/config/management/PhabricatorConfigManagementDeleteWorkflow.php
12256 views
<?php12final class PhabricatorConfigManagementDeleteWorkflow3extends PhabricatorConfigManagementWorkflow {45protected function didConstruct() {6$this7->setName('delete')8->setExamples('**delete** __key__')9->setSynopsis(pht('Delete a local configuration value.'))10->setArguments(11array(12array(13'name' => 'database',14'help' => pht(15'Delete configuration in the database instead of '.16'in local configuration.'),17),18array(19'name' => 'args',20'wildcard' => true,21),22));23}2425public function execute(PhutilArgumentParser $args) {26$console = PhutilConsole::getConsole();2728$argv = $args->getArg('args');29if (count($argv) == 0) {30throw new PhutilArgumentUsageException(31pht('Specify a configuration key to delete.'));32}3334$key = $argv[0];3536if (count($argv) > 1) {37throw new PhutilArgumentUsageException(38pht('Too many arguments: expected one key.'));39}404142$use_database = $args->getArg('database');43if ($use_database) {44$config = new PhabricatorConfigDatabaseSource('default');45$config_type = 'database';46} else {47$config = new PhabricatorConfigLocalSource();48$config_type = 'local';49}50$values = $config->getKeys(array($key));51if (!$values) {52throw new PhutilArgumentUsageException(53pht(54"Configuration key '%s' is not set in %s configuration!",55$key,56$config_type));57}5859if ($use_database) {60$config_entry = PhabricatorConfigEntry::loadConfigEntry($key);61$config_entry->setIsDeleted(1);62$config_entry->save();63} else {64$config->deleteKeys(array($key));65}6667$console->writeOut(68"%s\n",69pht("Deleted '%s' from %s configuration.", $key, $config_type));70}7172}737475