From 93e08fd78e28f8323a8b4f61fd1920542764f598 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Thu, 3 Mar 2016 18:49:21 +0100 Subject: [PATCH] Also clean backups if no Composer update actually performed --- src/Composer/Command/SelfUpdateCommand.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/SelfUpdateCommand.php b/src/Composer/Command/SelfUpdateCommand.php index 32dae3baa..0562c9b73 100644 --- a/src/Composer/Command/SelfUpdateCommand.php +++ b/src/Composer/Command/SelfUpdateCommand.php @@ -105,6 +105,11 @@ EOT if (Composer::VERSION === $updateVersion) { $io->writeError('You are already using composer version '.$updateVersion.'.'); + // remove all backups except for the most recent, if any + if ($input->getOption('clean-backups')) { + $this->cleanBackups($rollbackDir, $this->getLastBackupVersion()); + } + return 0; } @@ -315,13 +320,16 @@ TAGSPUBKEY } } - protected function cleanBackups($rollbackDir) + protected function cleanBackups($rollbackDir, $except = null) { $finder = $this->getOldInstallationFinder($rollbackDir); $io = $this->getIO(); $fs = new Filesystem; foreach ($finder as $file) { + if ($except && $file->getBasename(self::OLD_INSTALL_EXT) === $except) { + continue; + } $file = (string) $file; $io->writeError('Removing: '.$file.''); $fs->remove($file);