Skip to content

Commit

Permalink
moving bad installs when an installer fails chocolatey-archive#10
Browse files Browse the repository at this point in the history
  • Loading branch information
ferventcoder committed May 22, 2013
1 parent 177631d commit 54e44a1
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/chocolatey.ps1
Expand Up @@ -34,6 +34,7 @@ $nugetChocolateyPath = (Split-Path -parent $MyInvocation.MyCommand.Definition)
$nugetPath = (Split-Path -Parent $nugetChocolateyPath)
$nugetExePath = Join-Path $nuGetPath 'bin'
$nugetLibPath = Join-Path $nuGetPath 'lib'
$badLibPath = Join-Path $nuGetPath 'lib-bad'
$extensionsPath = Join-Path $nugetPath 'extensions'
$chocInstallVariableName = "ChocolateyInstall"
$nugetExe = Join-Path $nugetChocolateyPath 'nuget.exe'
Expand Down
19 changes: 13 additions & 6 deletions src/functions/Chocolatey-NuGet.ps1
Expand Up @@ -68,12 +68,19 @@ Write-Debug "Installing packages to `"$nugetLibPath`"."

Write-Host "______ $installedPackageName v$installedPackageVersion ______" -ForegroundColor $RunNote -BackgroundColor Black

if ([System.IO.Directory]::Exists($packageFolder)) {
Delete-ExistingErrorLog $installedPackageName
Run-ChocolateyPS1 $packageFolder $installedPackageName "install" $installerArguments
Get-ChocolateyBins $packageFolder
if ($installedPackageName.ToLower().EndsWith('.extension')) {
Chocolatey-InstallExtension $packageFolder $installedPackageName
if ([System.IO.Directory]::Exists($packageFolder)) {
try {
Delete-ExistingErrorLog $installedPackageName
Run-ChocolateyPS1 $packageFolder $installedPackageName "install" $installerArguments
Get-ChocolateyBins $packageFolder
if ($installedPackageName.ToLower().EndsWith('.extension')) {
Chocolatey-InstallExtension $packageFolder $installedPackageName
}

} catch {
Move-BadInstall $installedPackageName $installedPackageVersion $packageFolder
Write-Error "Package `'$installedPackageName v$installedPackageVersion`' did not install successfully: $($_.Exception.Message)"
}
}
}
}
Expand Down
24 changes: 24 additions & 0 deletions src/functions/Move-BadInstall.ps1
@@ -0,0 +1,24 @@
function Move-BadInstall {
param(
[string] $packageName,
[string] $version = '',
[string] $packageFolder = ''
)
Write-Debug "Running 'Move-BadInstall' for $packageName version: `'$version`', packageFolder:`'$packageFolder`'";

#copy the bad stuff to a temp directory
$badPackageFolder = Join-Path $badLibPath "$($installedPackageName).$($installedPackageVersion)"
try {
if ([System.IO.Directory]::Exists($badPackageFolder)) {
[System.IO.Directory]::Delete($badPackageFolder,$true) #| out-null
}
[System.IO.Directory]::CreateDirectory($badPackageFolder) | out-null

write-debug "Moving bad package `'$packageName v$version`' to `'$badPackageFolder`'."
#Get-Childitem "$badPackageFolder" -recurse | remove-item
Move-Item $packageFolder $badPackageFolder -force #| out-null
} catch {
Write-Error "Could not move bad package $packageName from `'$packageFolder`' to `'$badPackageFolder`': $($_.Exception.Message)"
}

}

0 comments on commit 54e44a1

Please sign in to comment.