39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
|
<?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') == '@prod') {
|
||
|
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("/^@prod/", $commandData->input()->getArgument('target'))) {
|
||
|
throw new \Exception(dt('Per !file, you may never rsync to the production site.', ['!file' => __FILE__]));
|
||
|
}
|
||
|
}
|
||
|
}
|