Skip to content

Add not yet implemented warning to save-psresource -asNupkg #1009

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 14, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 17 additions & 52 deletions src/code/InstallHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1091,65 +1091,30 @@ private List<PSResourceInfo> InstallPackage(

// Create the package extraction context
PackageExtractionContext packageExtractionContext = new PackageExtractionContext(
packageSaveMode: PackageSaveMode.Nupkg,
xmlDocFileSaveMode: PackageExtractionBehavior.XmlDocFileSaveMode,
clientPolicyContext: null,
logger: NullLogger.Instance);

// Extracting from .nupkg and placing files into tempInstallPath
result.PackageReader.CopyFiles(
destination: tempInstallPath,
packageFiles: result.PackageReader.GetFiles(),
extractFile: new PackageFileExtractor(
result.PackageReader.GetFiles(),
packageExtractionContext.XmlDocFileSaveMode).ExtractPackageFile,
logger: NullLogger.Instance,
token: _cancellationToken);
result.Dispose();
}
else
{
/* Download from a non-local repository */
// Set up NuGet API resource for download
PackageSource source = new PackageSource(repoUri);
packageSaveMode: PackageSaveMode.Nupkg,
xmlDocFileSaveMode: PackageExtractionBehavior.XmlDocFileSaveMode,
clientPolicyContext: null,
logger: NullLogger.Instance);

// Explicitly passed in Credential takes precedence over repository CredentialInfo
if (repoCredentialInfo != null)
if (_asNupkg)
{
PSCredential repoCredential = Utils.GetRepositoryCredentialFromSecretManagement(
repoName,
repoCredentialInfo,
_cmdletPassedIn);

string password = new NetworkCredential(string.Empty, repoCredential.Password).Password;
source.Credentials = PackageSourceCredential.FromUserInput(repoUri, repoCredential.UserName, password, true, null);
_cmdletPassedIn.WriteWarning("This feature is not yet implemented.");
}

var provider = FactoryExtensionsV3.GetCoreV3(NuGet.Protocol.Core.Types.Repository.Provider);
SourceRepository repository = new SourceRepository(source, provider);

/* Download from a non-local repository -- ie server */
var downloadResource = repository.GetResourceAsync<DownloadResource>().GetAwaiter().GetResult();
DownloadResourceResult result = null;
try
else
{
result = downloadResource.GetDownloadResourceResultAsync(
identity: pkgIdentity,
downloadContext: new PackageDownloadContext(cacheContext),
globalPackagesFolder: tempInstallPath,
// Extracting from .nupkg and placing files into tempInstallPath
result.PackageReader.CopyFiles(
destination: tempInstallPath,
packageFiles: result.PackageReader.GetFiles(),
extractFile: new PackageFileExtractor(
result.PackageReader.GetFiles(),
packageExtractionContext.XmlDocFileSaveMode).ExtractPackageFile,
logger: NullLogger.Instance,
token: _cancellationToken).GetAwaiter().GetResult();
}
catch (Exception e)
{
_cmdletPassedIn.WriteVerbose(string.Format("Error attempting download: '{0}'", e.Message));
}
finally
{
// Need to close the .nupkg
if (result != null) result.Dispose();
token: _cancellationToken);
}
result.Dispose();
}


_cmdletPassedIn.WriteVerbose(string.Format("Successfully able to download package from source to: '{0}'", tempInstallPath));

Expand Down