예제 #1
0
 /// <summary>
 ///   <p>Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.</p>
 ///   <p>For more details, visit the <a href="http://www.jrsoftware.org/isinfo.php">official website</a>.</p>
 /// </summary>
 /// <remarks>
 ///   <p>This is a <a href="http://www.nuke.build/docs/authoring-builds/cli-tools.html#fluent-apis">CLI wrapper with fluent API</a> that allows to modify the following arguments:</p>
 ///   <ul>
 ///     <li><c>&lt;scriptFile&gt;</c> via <see cref="InnoSetupSettings.ScriptFile"/></li>
 ///     <li><c>/D</c> via <see cref="InnoSetupSettings.KeyValueDefinitions"/></li>
 ///     <li><c>/D</c> via <see cref="InnoSetupSettings.KeyDefinitions"/></li>
 ///     <li><c>/F</c> via <see cref="InnoSetupSettings.OutputBaseFilename"/></li>
 ///     <li><c>/O</c> via <see cref="InnoSetupSettings.Output"/></li>
 ///     <li><c>/O</c> via <see cref="InnoSetupSettings.OutputDir"/></li>
 ///     <li><c>/Q</c> via <see cref="InnoSetupSettings.Quiet"/></li>
 ///     <li><c>/Qp</c> via <see cref="InnoSetupSettings.QuietWithProgress"/></li>
 ///     <li><c>/S</c> via <see cref="InnoSetupSettings.SignTools"/></li>
 ///     <li><c>/V</c> via <see cref="InnoSetupSettings.Verbosity"/></li>
 ///   </ul>
 /// </remarks>
 public static IReadOnlyCollection <Output> InnoSetup(InnoSetupSettings toolSettings = null)
 {
     toolSettings      = toolSettings ?? new InnoSetupSettings();
     using var process = ProcessTasks.StartProcess(toolSettings);
     process.AssertZeroExitCode();
     return(process.Output);
 }
예제 #2
0
        public static InnoSetupSettings RemoveKeyDefinitions(this InnoSetupSettings toolSettings, IEnumerable <string> keyDefinitions)
        {
            toolSettings = toolSettings.NewInstance();
            var hashSet = new HashSet <string>(keyDefinitions);

            toolSettings.KeyDefinitionsInternal.RemoveAll(x => hashSet.Contains(x));
            return(toolSettings);
        }
예제 #3
0
 public static InnoSetupSettings ToggleOutput(this InnoSetupSettings toolSettings)
 {
     toolSettings        = toolSettings.NewInstance();
     toolSettings.Output = !toolSettings.Output;
     return(toolSettings);
 }
예제 #4
0
 public static InnoSetupSettings ResetVerbosity(this InnoSetupSettings toolSettings)
 {
     toolSettings           = toolSettings.NewInstance();
     toolSettings.Verbosity = null;
     return(toolSettings);
 }
예제 #5
0
 public static InnoSetupSettings AddKeyDefinitions(this InnoSetupSettings toolSettings, IEnumerable <string> keyDefinitions)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyDefinitionsInternal.AddRange(keyDefinitions);
     return(toolSettings);
 }
예제 #6
0
 public static InnoSetupSettings SetKeyDefinitions(this InnoSetupSettings toolSettings, IEnumerable <string> keyDefinitions)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyDefinitionsInternal = keyDefinitions.ToList();
     return(toolSettings);
 }
예제 #7
0
 public static InnoSetupSettings SetKeyValueDefinition(this InnoSetupSettings toolSettings, string keyValueDefinitionKey, string keyValueDefinitionValue)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyValueDefinitionsInternal[keyValueDefinitionKey] = keyValueDefinitionValue;
     return(toolSettings);
 }
예제 #8
0
 public static InnoSetupSettings SetKeyValueDefinitions(this InnoSetupSettings toolSettings, IDictionary <string, string> keyValueDefinitions)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyValueDefinitionsInternal = keyValueDefinitions.ToDictionary(x => x.Key, x => x.Value, StringComparer.OrdinalIgnoreCase);
     return(toolSettings);
 }
예제 #9
0
 public static InnoSetupSettings AddSignTool(this InnoSetupSettings toolSettings, string signToolKey, string signToolValue)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.SignToolsInternal.Add(signToolKey, signToolValue);
     return(toolSettings);
 }
예제 #10
0
 public static InnoSetupSettings ClearSignTools(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.SignToolsInternal.Clear();
     return(toolSettings);
 }
예제 #11
0
 public static InnoSetupSettings SetSignTools(this InnoSetupSettings toolSettings, IDictionary <string, string> signTools)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.SignToolsInternal = signTools.ToDictionary(x => x.Key, x => x.Value, StringComparer.OrdinalIgnoreCase);
     return(toolSettings);
 }
예제 #12
0
 public static InnoSetupSettings ResetOutputBaseFilename(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.OutputBaseFilename = null;
     return(toolSettings);
 }
예제 #13
0
 public static InnoSetupSettings SetOutputBaseFilename(this InnoSetupSettings toolSettings, string outputBaseFilename)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.OutputBaseFilename = outputBaseFilename;
     return(toolSettings);
 }
예제 #14
0
 public static InnoSetupSettings ResetOutputDir(this InnoSetupSettings toolSettings)
 {
     toolSettings           = toolSettings.NewInstance();
     toolSettings.OutputDir = null;
     return(toolSettings);
 }
예제 #15
0
 public static InnoSetupSettings SetOutputDir(this InnoSetupSettings toolSettings, string outputDir)
 {
     toolSettings           = toolSettings.NewInstance();
     toolSettings.OutputDir = outputDir;
     return(toolSettings);
 }
예제 #16
0
 public static InnoSetupSettings DisableQuietWithProgress(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.QuietWithProgress = false;
     return(toolSettings);
 }
예제 #17
0
 public static InnoSetupSettings ToggleQuietWithProgress(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.QuietWithProgress = !toolSettings.QuietWithProgress;
     return(toolSettings);
 }
예제 #18
0
 public static InnoSetupSettings RemoveSignTool(this InnoSetupSettings toolSettings, string signToolKey)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.SignToolsInternal.Remove(signToolKey);
     return(toolSettings);
 }
예제 #19
0
 public static InnoSetupSettings RemoveKeyValueDefinition(this InnoSetupSettings toolSettings, string keyValueDefinitionKey)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyValueDefinitionsInternal.Remove(keyValueDefinitionKey);
     return(toolSettings);
 }
예제 #20
0
 public static InnoSetupSettings SetSignTool(this InnoSetupSettings toolSettings, string signToolKey, string signToolValue)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.SignToolsInternal[signToolKey] = signToolValue;
     return(toolSettings);
 }
예제 #21
0
 public static InnoSetupSettings SetKeyDefinitions(this InnoSetupSettings toolSettings, params string[] keyDefinitions)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyDefinitionsInternal = keyDefinitions.ToList();
     return(toolSettings);
 }
예제 #22
0
 public static InnoSetupSettings SetQuiet(this InnoSetupSettings toolSettings, bool?quiet)
 {
     toolSettings       = toolSettings.NewInstance();
     toolSettings.Quiet = quiet;
     return(toolSettings);
 }
예제 #23
0
 public static InnoSetupSettings AddKeyDefinitions(this InnoSetupSettings toolSettings, params string[] keyDefinitions)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyDefinitionsInternal.AddRange(keyDefinitions);
     return(toolSettings);
 }
예제 #24
0
 public static InnoSetupSettings EnableQuiet(this InnoSetupSettings toolSettings)
 {
     toolSettings       = toolSettings.NewInstance();
     toolSettings.Quiet = true;
     return(toolSettings);
 }
예제 #25
0
 public static InnoSetupSettings ClearKeyDefinitions(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.KeyDefinitionsInternal.Clear();
     return(toolSettings);
 }
예제 #26
0
 public static InnoSetupSettings ToggleQuiet(this InnoSetupSettings toolSettings)
 {
     toolSettings       = toolSettings.NewInstance();
     toolSettings.Quiet = !toolSettings.Quiet;
     return(toolSettings);
 }
예제 #27
0
 public static InnoSetupSettings SetVerbosity(this InnoSetupSettings toolSettings, int?verbosity)
 {
     toolSettings           = toolSettings.NewInstance();
     toolSettings.Verbosity = verbosity;
     return(toolSettings);
 }
예제 #28
0
 public static InnoSetupSettings SetQuietWithProgress(this InnoSetupSettings toolSettings, bool?quietWithProgress)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.QuietWithProgress = quietWithProgress;
     return(toolSettings);
 }
예제 #29
0
 public static InnoSetupSettings ResetQuietWithProgress(this InnoSetupSettings toolSettings)
 {
     toolSettings = toolSettings.NewInstance();
     toolSettings.QuietWithProgress = null;
     return(toolSettings);
 }
예제 #30
0
 public static InnoSetupSettings DisableOutput(this InnoSetupSettings toolSettings)
 {
     toolSettings        = toolSettings.NewInstance();
     toolSettings.Output = false;
     return(toolSettings);
 }