Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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();
            }
        }
Beispiel #5
0
        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;
            }
        }