public async Task Install(string packageName, string installArguments, Action <string> logOutput, Action <string> logWarning, Action <string> logError, Action <ProgressRecord> logProgress)
    {
        var parameters = new Dictionary <string, object>
        {
            { "command", "install" },
            { "packageNames", packageName },
            { "source", GetSource() },
            { "verbosity", true },
#if (DEBUG)
            { "pre", true },
#endif
            { "force", true }
        };

        if (installArguments != null)
        {
            parameters["installArguments"] = installArguments;
        }
        var             chocolateyPs1Path = Path.Combine(chocolateyInstaller.GetInstallPath(), @"chocolateyinstall\chocolatey.ps1");
        Action <string> wrappedLogOutput  = s =>
        {
            if (s.ToLower().Contains("reboot is required"))
            {
                logError(s);
                return;
            }

            if (s.ToLower().Contains("the remote name could not be resolved:"))
            {
                logError(s);
                return;
            }


            if (s.ToLower().Contains("unable to find package"))
            {
                logError(s);
                return;
            }


            logOutput(s);
        };
        await powerShellRunner.Run(chocolateyPs1Path, parameters, wrappedLogOutput, logWarning, logError, logProgress);

        CopyLogFiles(packageName);
    }
Exemple #2
0
    public void GetInstallPath()
    {
        var chocolateyInstaller = new ChocolateyInstaller(new ProcessRunner(), new PowerShellRunner());

        Assert.AreEqual(@"C:\Chocolatey", chocolateyInstaller.GetInstallPath());
    }
 public void GetInstallPath()
 {
     var chocolateyInstaller = new ChocolateyInstaller(new ProcessRunner(), new PowerShellRunner());
     Assert.AreEqual(@"C:\Chocolatey", chocolateyInstaller.GetInstallPath());
 }