diff options
author | Andrew Dolgov <[email protected]> | 2023-10-20 16:44:35 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2023-10-20 16:44:35 +0300 |
commit | 8bec661288b276c98bdb0e773e5f4d5275dc4c87 (patch) | |
tree | 8617ebe581c62fc46a7881aa61801ebce9d3c603 /vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php | |
parent | 540438c2eb5452bacad30c247906bfa287f2da1d (diff) |
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php b/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php index 3a8ec0c..e179fe3 100644 --- a/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php +++ b/vendor/aws/aws-sdk-php/src/Script/Composer/Composer.php @@ -2,6 +2,7 @@ namespace Aws\Script\Composer; use Composer\Script\Event; +use Symfony\Component\Filesystem\Exception\IOException; use Symfony\Component\Filesystem\Filesystem; class Composer @@ -66,7 +67,7 @@ class Composer $listedServices, $vendorPath ) { - $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'Sts']; + $unsafeForDeletion = ['Kms', 'S3', 'SSO', 'SSOOIDC', 'Sts']; if (in_array('DynamoDbStreams', $listedServices)) { $unsafeForDeletion[] = 'DynamoDb'; } @@ -83,8 +84,31 @@ class Composer $modelDir = $modelPath . $modelName; if ($filesystem->exists([$clientDir, $modelDir])) { - $filesystem->remove([$clientDir, $modelDir]);; - $deleteCount++; + $attempts = 3; + $delay = 2; + + while ($attempts) { + try { + $filesystem->remove([$clientDir, $modelDir]); + $deleteCount++; + break; + } catch (IOException $e) { + $attempts--; + + if (!$attempts) { + throw new IOException( + "Removal failed after several attempts. Last error: " . $e->getMessage() + ); + } else { + sleep($delay); + $event->getIO()->write( + "Error encountered: " . $e->getMessage() . ". Retrying..." + ); + $delay += 2; + } + } + } + } } } |