Esempio n. 1
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();
            }
        }
Esempio n. 2
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();
            }
        }