Exemple #1
0
        public override int Execute()
        {
            if (!_global)
            {
                throw new GracefulException(LocalizableStrings.InstallToolCommandOnlySupportGlobal);
            }

            try
            {
                FilePath?configFile = null;
                if (_configFilePath != null)
                {
                    configFile = new FilePath(_configFilePath);
                }

                using (var transactionScope = new TransactionScope())
                {
                    var toolConfigurationAndExecutablePath = _toolPackageObtainer.ObtainAndReturnExecutablePath(
                        packageId: _packageId,
                        packageVersion: _packageVersion,
                        nugetconfig: configFile,
                        targetframework: _framework,
                        source: _source,
                        verbosity: _verbosity);

                    var commandName = toolConfigurationAndExecutablePath.Configuration.CommandName;

                    _shellShimMaker.CreateShim(
                        toolConfigurationAndExecutablePath.Executable,
                        commandName);

                    _environmentPathInstruction
                    .PrintAddPathInstructionIfPathDoesNotExist();

                    _reporter.WriteLine(
                        string.Format(LocalizableStrings.InstallationSucceeded, commandName));
                    transactionScope.Complete();
                }
            }
            catch (PackageObtainException ex)
            {
                _errorReporter.WriteLine(ex.Message.Red());
                _errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailed, _packageId).Red());
                return(1);
            }
            catch (ToolConfigurationException ex)
            {
                _errorReporter.WriteLine(
                    string.Format(
                        LocalizableStrings.InvalidToolConfiguration,
                        ex.Message).Red());
                _errorReporter.WriteLine(string.Format(LocalizableStrings.ToolInstallationFailedContactAuthor, _packageId).Red());
                return(1);
            }

            return(0);
        }
Exemple #2
0
        private ToolConfigurationAndExecutablePath ObtainPackage()
        {
            try
            {
                FilePath?configFile = null;
                if (_configFilePath != null)
                {
                    configFile = new FilePath(_configFilePath);
                }

                return(_toolPackageObtainer.ObtainAndReturnExecutablePath(
                           packageId: _packageId,
                           packageVersion: _packageVersion,
                           nugetconfig: configFile,
                           targetframework: _framework,
                           source: _source));
            }

            catch (PackageObtainException ex)
            {
                throw new GracefulException(
                          message:
                          string.Format(LocalizableStrings.InstallFailedNuget,
                                        ex.Message),
                          innerException: ex);
            }
            catch (ToolConfigurationException ex)
            {
                throw new GracefulException(
                          message:
                          string.Format(
                              LocalizableStrings.InstallFailedPackage,
                              ex.Message),
                          innerException: ex);
            }
        }