Skip to content

Commit

Permalink
DEV-1993: Add drush policy to make drush sync command safer. (#48)
Browse files Browse the repository at this point in the history
* DEV-1993: Alter drush sync command with safe defaults.

* Update PolicyCommands.php

Co-authored-by: Wolfgang Ziegler <[email protected]>
  • Loading branch information
StavoveiC and fago authored Jun 1, 2022
1 parent 6deeed2 commit 7d1386a
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions drush/Commands/PolicyCommands.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php

namespace Drush\Commands;

use Consolidation\AnnotatedCommand\CommandData;

/**
* Edit this file to reflect your organization's needs.
*/
class PolicyCommands extends DrushCommands {

/**
* Prevent catastrophic braino. Note that this file has to be local to the
* machine that initiates the sql:sync command.
*
* @hook validate sql:sync
*
* @throws \Exception
*/
public function sqlSyncValidate(CommandData $commandData) {
if ($commandData->input()->getArgument('target') == '@live') {
throw new \Exception(dt('Per !file, you may never overwrite the production database.', ['!file' => __FILE__]));
}
}

/**
* Limit rsync operations to production site.
*
* @hook validate core:rsync
*
* @throws \Exception
*/
public function rsyncValidate(CommandData $commandData) {
if (preg_match("/^@live/", $commandData->input()->getArgument('target'))) {
throw new \Exception(dt('Per !file, you may never rsync to the production site.', ['!file' => __FILE__]));
}
}
}

0 comments on commit 7d1386a

Please sign in to comment.