protected override void ProcessRecord()
        {
            VersionRange versionRange;

            // handle case where Version == null
            if (Version == null)
            {
                versionRange = VersionRange.All;
            }
            else if (!Utils.TryParseVersionOrVersionRange(Version, out versionRange))
            {
                // Only returns false if the range was incorrectly formatted and couldn't be parsed.
                WriteError(new ErrorRecord(
                               new PSInvalidOperationException("Cannot parse Version parameter provided into VersionRange"),
                               "ErrorParsingVersionParamIntoVersionRange",
                               ErrorCategory.InvalidArgument,
                               this));
                return;
            }

            var namesToUpdate = ProcessPackageNames(Name, versionRange);

            if (namesToUpdate.Length == 0)
            {
                return;
            }

            if (!ShouldProcess(string.Format("package to update: '{0}'", String.Join(", ", Name))))
            {
                WriteVerbose(string.Format("Update is cancelled by user for: {0}", String.Join(", ", Name)));
                return;
            }

            var installedPkgs = _installHelper.InstallPackages(
                names: namesToUpdate,
                versionRange: versionRange,
                prerelease: Prerelease,
                repository: Repository,
                acceptLicense: AcceptLicense,
                quiet: Quiet,
                reinstall: true,
                force: Force,
                trustRepository: TrustRepository,
                credential: Credential,
                noClobber: false,
                asNupkg: false,
                includeXML: true,
                skipDependencyCheck: SkipDependencyCheck,
                savePkg: false,
                pathsToInstallPkg: _pathsToInstallPkg);

            if (PassThru)
            {
                foreach (PSResourceInfo pkg in installedPkgs)
                {
                    WriteObject(pkg);
                }
            }
        }
        protected override void ProcessRecord()
        {
            // Define the cancellation token.
            CancellationTokenSource source            = new CancellationTokenSource();
            CancellationToken       cancellationToken = source.Token;

            var installHelper = new InstallHelper(updatePkg: false, savePkg: false, cancellationToken: cancellationToken, cmdletPassedIn: this);

            switch (ParameterSetName)
            {
            case NameParameterSet:
                installHelper.InstallPackages(
                    names: Name,
                    versionRange: _versionRange,
                    prerelease: Prerelease,
                    repository: Repository,
                    acceptLicense: AcceptLicense,
                    quiet: Quiet,
                    reinstall: Reinstall,
                    force: false,
                    trustRepository: TrustRepository,
                    noClobber: false,
                    credential: Credential,
                    requiredResourceFile: null,
                    requiredResourceJson: null,
                    requiredResourceHash: null,
                    specifiedPath: null,
                    asNupkg: false,
                    includeXML: true,
                    pathsToInstallPkg: _pathsToInstallPkg);
                break;

            case RequiredResourceFileParameterSet:
                ThrowTerminatingError(new ErrorRecord(
                                          new PSNotImplementedException("RequiredResourceFileParameterSet is not yet implemented. Please rerun cmdlet with other parameter set."),
                                          "CommandParameterSetNotImplementedYet",
                                          ErrorCategory.NotImplemented,
                                          this));
                break;

            case RequiredResourceParameterSet:
                ThrowTerminatingError(new ErrorRecord(
                                          new PSNotImplementedException("RequiredResourceParameterSet is not yet implemented. Please rerun cmdlet with other parameter set."),
                                          "CommandParameterSetNotImplementedYet",
                                          ErrorCategory.NotImplemented,
                                          this));
                break;

            default:
                Dbg.Assert(false, "Invalid parameter set");
                break;
            }
        }
Exemple #3
0
        protected override void ProcessRecord()
        {
            // Define the cancellation token.
            CancellationTokenSource source            = new CancellationTokenSource();
            CancellationToken       cancellationToken = source.Token;

            var installHelper = new InstallHelper(updatePkg: false, savePkg: true, cancellationToken: cancellationToken, cmdletPassedIn: this);

            switch (ParameterSetName)
            {
            case NameParameterSet:
                installHelper.InstallPackages(
                    names: Name,
                    versionRange: _versionRange,
                    prerelease: Prerelease,
                    repository: Repository,
                    acceptLicense: true,
                    quiet: true,
                    reinstall: true,
                    force: false,
                    trustRepository: TrustRepository,
                    noClobber: false,
                    credential: Credential,
                    requiredResourceFile: null,
                    requiredResourceJson: null,
                    requiredResourceHash: null,
                    specifiedPath: _path,
                    asNupkg: false,
                    includeXML: false,
                    pathsToInstallPkg: new List <string> {
                    _path
                });
                break;

            default:
                Dbg.Assert(false, "Invalid parameter set");
                break;
            }
        }
Exemple #4
0
        private void ProcessInstallHelper(string[] pkgNames, VersionRange pkgVersion, bool pkgPrerelease, string[] pkgRepository, PSCredential pkgCredential, InstallPkgParams reqResourceParams)
        {
            var inputNameToInstall = Utils.ProcessNameWildcards(pkgNames, out string[] errorMsgs, out bool nameContainsWildcard);

            if (nameContainsWildcard)
            {
                WriteError(new ErrorRecord(
                               new PSInvalidOperationException("Name with wildcards is not supported for Install-PSResource cmdlet"),
                               "NameContainsWildcard",
                               ErrorCategory.InvalidArgument,
                               this));
                return;
            }

            foreach (string error in errorMsgs)
            {
                WriteError(new ErrorRecord(
                               new PSInvalidOperationException(error),
                               "ErrorFilteringNamesForUnsupportedWildcards",
                               ErrorCategory.InvalidArgument,
                               this));
            }

            // this catches the case where Name wasn't passed in as null or empty,
            // but after filtering out unsupported wildcard names there are no elements left in namesToInstall
            if (inputNameToInstall.Length == 0)
            {
                return;
            }

            if (!ShouldProcess(string.Format("package to install: '{0}'", String.Join(", ", inputNameToInstall))))
            {
                WriteVerbose(string.Format("Install operation cancelled by user for packages: {0}", String.Join(", ", inputNameToInstall)));
                return;
            }

            var installedPkgs = _installHelper.InstallPackages(
                names: pkgNames,
                versionRange: pkgVersion,
                prerelease: pkgPrerelease,
                repository: pkgRepository,
                acceptLicense: AcceptLicense,
                quiet: Quiet,
                reinstall: Reinstall,
                force: false,
                trustRepository: TrustRepository,
                noClobber: NoClobber,
                credential: pkgCredential,
                asNupkg: false,
                includeXML: true,
                skipDependencyCheck: SkipDependencyCheck,
                savePkg: false,
                pathsToInstallPkg: _pathsToInstallPkg);

            if (PassThru)
            {
                foreach (PSResourceInfo pkg in installedPkgs)
                {
                    WriteObject(pkg);
                }
            }
        }
Exemple #5
0
        private void ProcessSaveHelper(string[] pkgNames, bool pkgPrerelease, string[] pkgRepository)
        {
            var namesToSave = Utils.ProcessNameWildcards(pkgNames, out string[] errorMsgs, out bool nameContainsWildcard);

            if (nameContainsWildcard)
            {
                WriteError(new ErrorRecord(
                               new PSInvalidOperationException("Name with wildcards is not supported for Save-PSResource cmdlet"),
                               "NameContainsWildcard",
                               ErrorCategory.InvalidArgument,
                               this));
                return;
            }

            foreach (string error in errorMsgs)
            {
                WriteError(new ErrorRecord(
                               new PSInvalidOperationException(error),
                               "ErrorFilteringNamesForUnsupportedWildcards",
                               ErrorCategory.InvalidArgument,
                               this));
            }

            // this catches the case where Name wasn't passed in as null or empty,
            // but after filtering out unsupported wildcard names there are no elements left in namesToSave
            if (namesToSave.Length == 0)
            {
                return;
            }

            if (!ShouldProcess(string.Format("Resources to save: '{0}'", namesToSave)))
            {
                WriteVerbose(string.Format("Save operation cancelled by user for resources: {0}", namesToSave));
                return;
            }

            var installedPkgs = _installHelper.InstallPackages(
                names: namesToSave,
                versionRange: _versionRange,
                prerelease: pkgPrerelease,
                repository: pkgRepository,
                acceptLicense: true,
                quiet: Quiet,
                reinstall: true,
                force: false,
                trustRepository: TrustRepository,
                credential: Credential,
                noClobber: false,
                asNupkg: AsNupkg,
                includeXML: IncludeXML,
                skipDependencyCheck: SkipDependencyCheck,
                savePkg: true,
                pathsToInstallPkg: new List <string> {
                _path
            });

            if (PassThru)
            {
                foreach (PSResourceInfo pkg in installedPkgs)
                {
                    WriteObject(pkg);
                }
            }
        }