private static int CliMain(string[] args)
        {
            var startTicks = Environment.TickCount;

            Events.CliRenewalStarted(args);

            Trace.TraceInformation("Web App SSL renewal CLI started, parameters: {0}", string.Join(", ", args));
            var renewer = new CliRenewer(new RenewalManager(), new CommandlineRenewalParamsReader());

            try
            {
                renewer.Renew(args);
            }
            catch (ArgumentParsingException e)
            {
                Trace.TraceError(e.Message);
                Console.WriteLine(e.HelpText);
                TelemetryHelper.Client.TrackException(e);

                return(ExitCodes.ArgumentError);
            }
            catch (ArgumentValidationException e)
            {
                Trace.TraceError(e.Message);
                TelemetryHelper.Client.TrackException(e);

                return(ExitCodes.ArgumentError);
            }
            catch (Exception e) when(!ExceptionHelper.IsCriticalException(e))
            {
                Trace.TraceError("Unexpected exception: {0}", e);
                TelemetryHelper.Client.TrackException(e);

                return(ExitCodes.UnexpectedException);
            }

            Events.CliRenewalCompleted(startTicks);
            return(ExitCodes.Success);
        }
        private static int CliMain(string[] args)
        {
            var startTicks = Environment.TickCount;

            Events.CliRenewalStarted(args);

            Console.WriteLine("Web App SSL renewal CLI started, parameters: {0}", string.Join(", ", args));
            var renewer = new CliRenewer(new RenewalManager(), new CommandlineRenewalParamsReader());

            try
            {
                renewer.Renew(args);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(
                    "***ERROR*** Could not parse arguments: {0}{1}{2}",
                    e.Message,
                    Environment.NewLine,
                    Environment.GetEnvironmentVariable(VerboseOutputEnvVarName) != null
                        ? e.ToString()
                        : Invariant($"(To see the full exception set the {VerboseOutputEnvVarName} environment variable to any non-empty value)"));

                TelemetryHelper.Client.TrackException(e);

                PrintUsage();
                return(ArgumentError);
            }
            catch (Exception e) when(!ExceptionHelper.IsCriticalException(e))
            {
                Console.WriteLine("***ERROR*** Unexpected exception: {0}", e);
                TelemetryHelper.Client.TrackException(e);
                return(UnexpectedException);
            }

            Events.CliRenewalCompleted(startTicks);
            return(Success);
        }
 public CliTests()
 {
     m_renewer = new CliRenewer(RenewalManager, new CommandlineRenewalParamsReader());
 }