public function execute(PhutilArgumentParser $args)
 {
     $console = PhutilConsole::getConsole();
     $argv = $args->getArg('args');
     if (count($argv) == 0) {
         throw new PhutilArgumentUsageException(pht('Specify a configuration key to delete.'));
     }
     $key = $argv[0];
     if (count($argv) > 1) {
         throw new PhutilArgumentUsageException(pht('Too many arguments: expected one key.'));
     }
     $use_database = $args->getArg('database');
     if ($use_database) {
         $config = new PhabricatorConfigDatabaseSource('default');
         $config_type = 'database';
     } else {
         $config = new PhabricatorConfigLocalSource();
         $config_type = 'local';
     }
     $values = $config->getKeys(array($key));
     if (!$values) {
         throw new PhutilArgumentUsageException(pht("Configuration key '%s' is not set in %s configuration!", $key, $config_type));
     }
     if ($use_database) {
         $config_entry = PhabricatorConfigEntry::loadConfigEntry($key);
         $config_entry->setIsDeleted(1);
         $config_entry->save();
     } else {
         $config->deleteKeys(array($key));
     }
     $console->writeOut("%s\n", pht("Deleted '%s' from %s configuration.", $key, $config_type));
 }
 public function execute(PhutilArgumentParser $args)
 {
     $console = PhutilConsole::getConsole();
     $argv = $args->getArg('args');
     if (count($argv) == 0) {
         throw new PhutilArgumentUsageException('Specify a configuration key to delete.');
     }
     $key = $argv[0];
     if (count($argv) > 1) {
         throw new PhutilArgumentUsageException('Too many arguments: expected one key.');
     }
     $config = new PhabricatorConfigLocalSource();
     $values = $config->getKeys(array($key));
     if (!$values) {
         throw new PhutilArgumentUsageException("Configuration key '{$key}' is not set in local configuration!");
     }
     $config->deleteKeys(array($key));
     $console->writeOut(pht("Deleted '%s' from local configuration.", $key) . "\n");
 }