33 lines
1.0 KiB
PHP
Raw Normal View History

2016-11-19 15:13:32 +07:00
<?php
namespace Deployer;
2017-01-19 11:10:30 +07:00
use Deployer\Exception\GracefulShutdownException;
2021-11-08 22:59:39 +01:00
desc('Locks deploy');
2016-11-19 15:13:32 +07:00
task('deploy:lock', function () {
2021-10-16 00:28:06 +02:00
$user = escapeshellarg(get('user'));
$locked = run("[ -f {{deploy_path}}/.dep/deploy.lock ] && echo +locked || echo $user > {{deploy_path}}/.dep/deploy.lock");
if ($locked === '+locked') {
$lockedUser = run("cat {{deploy_path}}/.dep/deploy.lock");
2017-01-19 11:10:30 +07:00
throw new GracefulShutdownException(
"Deploy locked by $lockedUser.\n" .
2020-10-25 16:00:05 +01:00
"Execute \"deploy:unlock\" task to unlock."
2016-11-19 15:13:32 +07:00
);
}
});
2021-11-08 22:59:39 +01:00
desc('Unlocks deploy');
2016-11-19 15:13:32 +07:00
task('deploy:unlock', function () {
run("rm -f {{deploy_path}}/.dep/deploy.lock");//always success
2016-11-19 15:13:32 +07:00
});
2021-11-08 22:59:39 +01:00
desc('Checks if deploy is locked');
task('deploy:is_locked', function () {
$locked = test("[ -f {{deploy_path}}/.dep/deploy.lock ]");
if ($locked) {
$lockedUser = run("cat {{deploy_path}}/.dep/deploy.lock");
throw new GracefulShutdownException("Deploy is locked by $lockedUser.");
}
info('Deploy is unlocked.');
});