/// <inheritdoc /> public async Task SaveAzureCredentialsAsync(string organization, string username, string token) { var settings = new CliSettings(); settings.AzureDevOps.Organization = organization; settings.AzureDevOps.Credentials.Token = token; settings.AzureDevOps.Credentials.Username = username; var jsonToken = JToken.FromObject(settings); var fileInfo = new FileInfo(this.GetPath()); if (!fileInfo.Directory.Exists) { fileInfo.Directory.Create(); } using (var stream = File.Open(fileInfo.FullName, FileMode.OpenOrCreate)) { stream.SetLength(0); using (var streamWriter = new StreamWriter(stream)) { using (var writer = new JsonTextWriter(streamWriter)) { await jsonToken.WriteToAsync(writer); await writer.FlushAsync(); } } } }
private void Run(string[] args) { if (args.Length < 1) { System.Console.WriteLine("No Arguments"); return; } CliSettings s = SettingsManager.GetSettings <CliSettings>(); EventManager.RegisterDefaultHandlers(); EventManagerSettings es = new EventManagerSettings(); Logger.OnLogReceive += (x, y) => System.Console.WriteLine($"[{x}] {y}"); ArgumentSyntaxParser.Parse(args, s, Logger.s_Settings, es); EventManager.SetSettings(es); Run( args.Concat( s.Configs.SelectMany( x => File.Exists(x) ? File.ReadAllText(x). Split( new[] { '\n', '\r', ' ' }, StringSplitOptions.RemoveEmptyEntries ) : new string[0] ) ) ); }
/// <summary> /// Initializes wrapper on a target executable with given settings. /// </summary> /// <param name="filePath">File path of the target executable.</param> /// <param name="settings">Settings to use when executing the target executable.</param> public Cli(string filePath, CliSettings settings) { FilePath = filePath.GuardNotNull(nameof(filePath)); Settings = settings.GuardNotNull(nameof(settings)); // Create kill switch _killSwitchCts = new CancellationTokenSource(); }
public override void Run(IEnumerable <string> args) { CliSettings s = SettingsManager.GetSettings <CliSettings>(); ArgumentSyntaxParser.Parse(args.ToArray(), s); Dictionary <string, ConsoleSubsystem> ss = SubSystems; ss["help"] = new HelpSubSystem(this); VisConsole.RunConsole(s, args.ToArray(), ss); }
internal static void RunConsole( CliSettings settings, string[] args, Dictionary <string, ConsoleSubsystem> subsystems) { do { string[] subSystemKeys = { args[0] }; if (args[0].StartsWith("[") && args[0].EndsWith("]")) { subSystemKeys = args[0]. Remove(args[0].Length - 1, 1). Remove(0, 1). Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); } foreach (string subSystemKey in subSystemKeys) { if (!subsystems.TryGetValue(subSystemKey, out ConsoleSubsystem subsystem)) { System.Console.WriteLine("Invalid Argument"); continue; } subsystem.Run(args.Skip(1)); } if (settings.Continuous) { System.Console.WriteLine("Type 'exit' to close console"); System.Console.Write("cli>"); string cmd = System.Console.ReadLine().ToUpper(); if (cmd == "EXIT") { return; } } if (settings.WaitOnExit) { System.Console.WriteLine("Press any key to exit"); System.Console.ReadLine(); } }while (settings.Continuous); }
/// <summary> /// Gets the Azure DevOps credentials or throws the <see cref="AzureDevOpsMissingSettingsException"/> if the /// credentials are not available. /// </summary> /// <param name="settings"> /// The settings. /// </param> /// <returns> /// The <see cref="AzureDevOpsCredentials"/>. /// </returns> public static AzureDevOpsCredentials GetAzureDevOpsCredentialsOrThrowException(this CliSettings settings) { if (!string.IsNullOrEmpty(settings?.AzureDevOps?.Credentials?.Username) && !string.IsNullOrEmpty(settings.AzureDevOps?.Credentials?.Token)) { return(settings.AzureDevOps.Credentials); } throw new AzureDevOpsMissingSettingsException("Azure DevOps credentials not available"); }