Skip to content

Commit

Permalink
Merge branch 'pr1751' into stable
Browse files Browse the repository at this point in the history
* pr1751:
  (maint) Corrected whitespace
  (GH-1689) Delete packaging scripts before upgrade
  • Loading branch information
ferventcoder committed Mar 13, 2019
2 parents 9d4c4ce + 57f966f commit cb2799b
Showing 1 changed file with 28 additions and 3 deletions.
31 changes: 28 additions & 3 deletions src/chocolatey/infrastructure.app/services/NugetService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -899,7 +899,7 @@ public virtual ConcurrentDictionary<string, PackageResult> get_outdated(Chocolat
var pkgInfo = _packageInfoService.get_package_information(installedPackage);
bool isPinned = pkgInfo.IsPinned;

// if the package is pinned and we are skipping pinned,
// if the package is pinned and we are skipping pinned,
// move on quickly
if (isPinned && config.OutdatedCommand.IgnorePinned)
{
Expand All @@ -918,7 +918,7 @@ public virtual ConcurrentDictionary<string, PackageResult> get_outdated(Chocolat
}

var latestPackage = find_package(packageName, null, config, repository);

if (latestPackage == null)
{
if (config.Features.IgnoreUnfoundPackagesOnUpgradeOutdated) continue;
Expand All @@ -933,7 +933,7 @@ public virtual ConcurrentDictionary<string, PackageResult> get_outdated(Chocolat
}

if (latestPackage.Version <= installedPackage.Version) continue;

var packageResult = outdatedPackages.GetOrAdd(packageName, new PackageResult(latestPackage, _fileSystem.combine_paths(ApplicationParameters.PackagesLocation, latestPackage.Id)));

string logMessage = "You have {0} v{1} installed. Version {2} is available based on your source(s).{3} Source(s): \"{4}\"".format_with(installedPackage.Id, installedPackage.Version, latestPackage.Version, Environment.NewLine, config.Sources);
Expand Down Expand Up @@ -1146,6 +1146,8 @@ public virtual void backup_existing_version(ChocolateyConfiguration config, IPac
try
{
_fileSystem.copy_directory(backupLocation, pkgInstallPath, overwriteExisting: true);

remove_packaging_files_prior_to_upgrade(pkgInstallPath, config.CommandName);
}
catch (Exception ex)
{
Expand All @@ -1167,6 +1169,29 @@ process locking the folder or files. Please make sure nothing is
}
}

public virtual void remove_packaging_files_prior_to_upgrade(string directoryPath, string commandName)
{
if (commandName.to_lower() == "upgrade")
{
// Due to the way that Package Reducer works, there is a potential that a Chocolatey Packaging
// script could be incorrectly left in place during an upgrade operation. To guard against this,
// remove any Chocolatey Packaging scripts, which will then be restored by the new package, if
// they are still required
var filesToDelete = new List<string> {"chocolateyinstall", "chocolateyuninstall", "chocolateybeforemodify"};
var packagingScripts = _fileSystem.get_files(directoryPath, "*.ps1", SearchOption.AllDirectories)
.Where(p => filesToDelete.Contains(_fileSystem.get_file_name_without_extension(p).to_lower()));

foreach (var packagingScript in packagingScripts)
{
if (_fileSystem.file_exists(packagingScript))
{
this.Log().Debug("Deleting file {0}".format_with(packagingScript));
_fileSystem.delete_file(packagingScript);
}
}
}
}

public virtual void backup_changed_files(string packageInstallPath, ChocolateyConfiguration config, ChocolateyPackageInformation packageInfo)
{
if (packageInfo == null || packageInfo.Package == null) return;
Expand Down

0 comments on commit cb2799b

Please sign in to comment.