From ce554ffc58724ce6a558d7b1bd7db347756198f2 Mon Sep 17 00:00:00 2001 From: Jack Bentley Date: Tue, 2 Feb 2021 17:01:12 +0000 Subject: [PATCH] Add ability to skip copying files This allows the ability to run migrations/scripts without having to copy files --- .../Strategy/Overwrite/OverwritePatchStrategy.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Patch/Strategy/Overwrite/OverwritePatchStrategy.php b/src/Patch/Strategy/Overwrite/OverwritePatchStrategy.php index ab2ade6c..11e414e2 100644 --- a/src/Patch/Strategy/Overwrite/OverwritePatchStrategy.php +++ b/src/Patch/Strategy/Overwrite/OverwritePatchStrategy.php @@ -49,14 +49,18 @@ public function apply($patchDir, $installDir, array $options) $tasks[] = new LimitBackups($installDir, $options['limit-backups']); } - $tasks[] = new CheckDiskSpace($installDir); + if (!$options['skip-backup'] || !$options['skip-copy-files']) { + $tasks[] = new CheckDiskSpace($installDir); + } if (!$options['skip-backup']) { $tasks[] = new BackupFiles($backupDir, $patchDir, $installDir); $tasks[] = new UpdateMigrationVersionFiles($backupDir, $patchDir, $installDir); } - $tasks[] = new CopyFiles($patchFilesDir, $installDir); + if (!$options['skip-copy-files']) { + $tasks[] = new CopyFiles($patchFilesDir, $installDir); + } if (!$options['skip-db-migrations']) { $tasks[] = new MigrateUp($patchDir, $installDir, MigrationsConstants::TYPE_DATABASE, (bool) $options['ignore-unavailable-migrations']); @@ -101,7 +105,9 @@ public function rollback($backupDir, $patchDir, $installDir, array $intermediate $tasks[] = new CheckDatabaseConnection($installDir); } - $tasks[] = new CopyFiles($backupFilesDir, $installDir); + if (!$options['skip-copy-files']) { + $tasks[] = new CopyFiles($backupFilesDir, $installDir); + } if (!$options['skip-db-migrations']) { $tasks[] = new MigrateDown($backupDir, $patchDir, $installDir, MigrationsConstants::TYPE_DATABASE, (bool) $options['ignore-unavailable-migrations']); @@ -135,6 +141,7 @@ public function configureRollbackCommand(InputDefinition $definition) */ private function configureCommand(InputDefinition $definition) { + $definition->addOption(new InputOption('skip-copy-files', null, InputOption::VALUE_NONE, 'Skip copying files.')); $definition->addOption(new InputOption('skip-db-migrations', null, InputOption::VALUE_NONE, 'Skip database migrations.')); $definition->addOption(new InputOption('skip-file-migrations', null, InputOption::VALUE_NONE, 'Skip file migrations.')); $definition->addOption(new InputOption('skip-version-check', null, InputOption::VALUE_NONE, 'Skip the version check.'));