private static void Main(string[] args) { var parser = new OptionParser <Options>(); if (!parser.TryParse(args, out var options)) { return; } try { var table = new List <Entry>(); if (!options.LocalOnly && new DefaultPublicIpResolver().TryResolve(out var publicIp)) { table.Add("Internet (Public)", publicIp, null); } var allInterfaces = NetworkInterface .GetAllNetworkInterfaces() .Where(i => i.OperationalStatus == OperationalStatus.Up) .ToArray(); table.AddRange(allInterfaces.Where(i => i.NetworkInterfaceType == NetworkInterfaceType.Ethernet)); table.AddRange(allInterfaces.Where(i => i.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)); table.AddRange(allInterfaces.Where(i => i.NetworkInterfaceType == NetworkInterfaceType.Loopback)); table.WriteTable(Console.Out, options.ShowIpv6); } catch (Exception e) { Console.Error.WriteLine(e.Message); parser.WriteUsage(); } }
private static void Main(string[] args) { var parser = new OptionParser <Options>(); if (!parser.TryParse(args, out var options)) { return; } var dateFormatter = new DefaultDateTimeFormatter(); var timeSpanFormatter = new DefaultTimeSpanFormatter(); try { var resolver = GetStrategy(options.Strategy); var uptime = new Uptime(resolver); dateFormatter.Format = options.DateTimeFormat; dateFormatter.UniversalTime = options.UseUtc; timeSpanFormatter.CustomFormat = options.TimeSpanFormat; timeSpanFormatter.Compact = options.Compact; if (options.ShowBootTimeOnly) { dateFormatter.WriteLine(uptime.LastBoot, Console.Out); return; } if (options.ShowOnTimeOnly) { timeSpanFormatter.WriteLine(uptime.UptimeSpan, Console.Out); return; } Console.Write("Boot Time: "); dateFormatter.WriteLine(uptime.LastBoot, Console.Out); Console.Write("Current Time: "); dateFormatter.WriteLine(uptime.Now, Console.Out); Console.Write("Up Time: "); timeSpanFormatter.WriteLine(uptime.UptimeSpan, Console.Out); } catch (Exception e) { Console.Error.WriteLine(e.Message); parser.WriteUsage(); } }
static int Main(string[] args) { var opts = new OptionParser(); opts.On("help", "display this help and exit").Do(() => { opts.WriteUsage(Console.Out); Environment.Exit(0); }); opts.On("version", 'V', "print version information and exit").Do(() => { opts.WriteVersionInfo(Console.Out); Environment.Exit(0); }); try { var commandType = App.Commands .SingleOrDefault(NamedAsExecutable) ?? typeof(UnknownCommand); var command = ((ICommand)Activator.CreateInstance(commandType)); command.WithOptions(opts); opts.Parse(args); return(command.Execute()); } catch (OptionParserException ex) { Console.Error.WriteLine(ex.Message); opts.WriteUsageHeader(Console.Error); Console.Error.WriteLine("\nTry `{0} --help' for more options.", App.CommandName); return(2); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); return(1); } }
private static void Main(string[] args) { var parser = new OptionParser <Options>(); if (!parser.TryParse(args, out var options)) { return; } try { var provider = new CultureInfo(options.CultureTwoLetterCode); var formatter = new DefaultDateTimeFormatter(formatProvider: provider); if (options.ShowExamples) { new ExampleWriter(formatter).WriteExamples(); return; } if (options.Extra.Count > 1) { throw new InvalidOperationException($"unexpected count of arguments: {options.Extra.ToSeparatedString()}"); } if (options.Extra.Count != 0) { formatter.Format = options.Extra[0]; } formatter.UniversalTime = options.UseUtc; formatter.WriteLine(Console.Out); } catch (Exception e) { Console.Error.WriteLine(e.Message); parser.WriteUsage(); } }
static int Main(string[] args) { var opts = new OptionParser(); opts.On("help", "display this help and exit").Do(() => { opts.WriteUsage(Console.Out); Environment.Exit(0); }); opts.On("version", 'V', "print version information and exit").Do(() => { opts.WriteVersionInfo(Console.Out); Environment.Exit(0); }); try { var commandType = App.Commands .SingleOrDefault(NamedAsExecutable) ?? typeof(UnknownCommand); var command = ((ICommand)Activator.CreateInstance(commandType)); command.WithOptions(opts); opts.Parse(args); return command.Execute(); } catch (OptionParserException ex) { Console.Error.WriteLine(ex.Message); opts.WriteUsageHeader(Console.Error); Console.Error.WriteLine("\nTry `{0} --help' for more options.", App.CommandName); return 2; } catch (Exception ex) { Console.Error.WriteLine(ex.Message); return 1; } }