Add command builder with escaped user input by AmelBawa-msft · Pull Request #5982 · microsoft/winget-cli

Expand Up @@ -33,7 +33,7 @@ public CliCommand(PSCmdlet psCmdlet) public void EnableSetting(string name) { Utilities.VerifyAdmin(); _ = this.Run("settings", $"--enable \"{name}\""); _ = this.Run(new WinGetCLICommandBuilder("settings").AppendOption("enable", name)); }
/// <summary> Expand All @@ -43,7 +43,7 @@ public void EnableSetting(string name) public void DisableSetting(string name) { Utilities.VerifyAdmin(); _ = this.Run("settings", $"--disable \"{name}\""); _ = this.Run(new WinGetCLICommandBuilder("settings").AppendOption("disable", name)); }
/// <summary> Expand All @@ -52,7 +52,7 @@ public void DisableSetting(string name) /// <param name="asPlainText">Return as string.</param> public void GetSettings(bool asPlainText) { var result = this.Run("settings", "export"); var result = this.Run(new WinGetCLICommandBuilder("settings").AppendSubCommand("export"));
if (asPlainText) { Expand All @@ -75,24 +75,27 @@ public void GetSettings(bool asPlainText) public void AddSource(string name, string arg, string type, string trustLevel, bool isExplicit) { Utilities.VerifyAdmin(); string parameters = $"add --name \"{name}\" --arg \"{arg}\""; var builder = new WinGetCLICommandBuilder("source") .AppendSubCommand("add") .AppendOption("name", name) .AppendOption("arg", arg);
if (!string.IsNullOrEmpty(type)) { parameters += $" --type \"{type}\""; builder.AppendOption("type", type); }
if (!string.IsNullOrEmpty(trustLevel)) { parameters += $" --trust-level \"{trustLevel}\""; builder.AppendOption("trust-level", trustLevel); }
if (isExplicit) { parameters += " --explicit"; builder.AppendSwitch("explicit"); }
_ = this.Run("source", parameters, 300000); _ = this.Run(builder, 300000); }
/// <summary> Expand All @@ -102,7 +105,7 @@ public void AddSource(string name, string arg, string type, string trustLevel, b public void RemoveSource(string name) { Utilities.VerifyAdmin(); _ = this.Run("source", $"remove --name \"{name}\""); _ = this.Run(new WinGetCLICommandBuilder("source").AppendSubCommand("remove").AppendOption("name", name)); }
/// <summary> Expand All @@ -112,7 +115,7 @@ public void RemoveSource(string name) public void ResetSourceByName(string name) { Utilities.VerifyAdmin(); _ = this.Run("source", $"reset --name \"{name}\" --force"); _ = this.Run(new WinGetCLICommandBuilder("source").AppendSubCommand("reset").AppendOption("name", name).AppendSwitch("force")); }
/// <summary> Expand All @@ -121,13 +124,13 @@ public void ResetSourceByName(string name) public void ResetAllSources() { Utilities.VerifyAdmin(); _ = this.Run("source", $"reset --force"); _ = this.Run(new WinGetCLICommandBuilder("source").AppendSubCommand("reset").AppendSwitch("force")); }
private WinGetCLICommandResult Run(string command, string parameters, int timeOut = 60000) private WinGetCLICommandResult Run(WinGetCLICommandBuilder builder, int timeOut = 60000) { var wingetCliWrapper = new WingetCLIWrapper(); var result = wingetCliWrapper.RunCommand(this, command, parameters, timeOut); var result = wingetCliWrapper.RunCommand(this, builder, timeOut); result.VerifyExitCode();
return result; Expand Down