| 1234567891011121314151617181920212223242526272829303132333435363738 | <?phpnamespace 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__]));    }  }}
 |