<?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Console;
use RuntimeException;
/**
- * @brief tool to access the locks from the CLI
+ * tool to access the locks from the CLI
*
* With this script you can access the locks of your node from the CLI.
* You can read current locks and set/remove locks.
- *
- * @author Philipp Holzer <admin@philipp.info>, Hypolite Petovan <hypolite@mrpetovan.com>
*/
class Lock extends \Asika\SimpleConsole\Console
{
protected function getHelp()
{
$help = <<<HELP
-console cache - Manage node cache
+console lock - Manage node locks
Synopsis
bin/console lock list [<prefix>] [-h|--help|-?] [-v]
bin/console lock set <lock> [<timeout> [<ttl>]] [-h|--help|-?] [-v]
private function executeDel()
{
if (count($this->args) >= 2) {
- $lock = $this->getArgument(1);
+ $lock = $this->getArgument(1);
- if ($this->lock->releaseLock($lock, true)){
+ if ($this->lock->release($lock, true)) {
$this->out(sprintf('Lock \'%s\' released.', $lock));
} else {
$this->out(sprintf('Couldn\'t release Lock \'%s\'', $lock));
private function executeSet()
{
if (count($this->args) >= 2) {
- $lock = $this->getArgument(1);
+ $lock = $this->getArgument(1);
$timeout = intval($this->getArgument(2, false));
- $ttl = intval($this->getArgument(3, false));
+ $ttl = intval($this->getArgument(3, false));
- if (is_array($this->lock->isLocked($lock))) {
+ if ($this->lock->isLocked($lock)) {
throw new RuntimeException(sprintf('\'%s\' is already set.', $lock));
}
if (!empty($ttl) && !empty($timeout)) {
- $result = $this->lock->acquireLock($lock, $timeout, $ttl);
+ $result = $this->lock->acquire($lock, $timeout, $ttl);
} elseif (!empty($timeout)) {
- $result = $this->lock->acquireLock($lock, $timeout);
+ $result = $this->lock->acquire($lock, $timeout);
} else {
- $result = $this->lock->acquireLock($lock);
+ $result = $this->lock->acquire($lock);
}
if ($result) {
$this->out(sprintf('Lock \'%s\' acquired.', $lock));
} else {
- $this->out(sprintf('Unable to lock \'%s\'', $lock));
+ throw new RuntimeException(sprintf('Unable to lock \'%s\'.', $lock));
}
} else {
throw new CommandArgsException('Too few arguments for set.');
{
$result = $this->lock->releaseAll(true);
if ($result) {
- $this->out('Locks successfully cleared,');
+ $this->out('Locks successfully cleared.');
} else {
- $this->out('Unable to clear the locks.');
+ throw new RuntimeException('Unable to clear the locks.');
}
}
}