39 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			1 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__])); | ||
|  |     } | ||
|  |   } | ||
|  | } |