Beispiel #1
0
        public void Run([NotNull] string[] args)
        {
            ShowTitle();

            IEnumerable <PreferenceGroupInfo> preferenceGroups = _generationService.GetPreferences();

            if (args.Contains("--help", StringComparer.OrdinalIgnoreCase) ||
                args.Contains("-help", StringComparer.OrdinalIgnoreCase) ||
                args.Contains("-?", StringComparer.OrdinalIgnoreCase) ||
                args.Contains("--?", StringComparer.OrdinalIgnoreCase))
            {
                _helpWriter.WriteHelp(preferenceGroups);

                Environment.ExitCode = (int)ExitCodes.HelpShown;
                return;
            }

            var consoleInputToPreferenceConverter = new ConsoleInputToPreferenceConverter();

            ParsedConsoleInput preferences = consoleInputToPreferenceConverter.ParseConsoleInput(args, preferenceGroups);

            if (preferences.ParseErrors.Any())
            {
                foreach (var parseError in preferences.ParseErrors)
                {
                    _consoleWriter.Info(parseError);
                }

                Environment.ExitCode = (int)ExitCodes.ConsoleInputParseError;
                return;
            }

            GenerateResult results = _generationService.Generate(preferences.ParsedPreferences.ToDictionary(kvp => kvp.Key.Name, kvp => kvp.Value)); //TODO: cleanup

            _resultWriter.Report(results);

            Environment.ExitCode = results.AllErrors.Any() ? (int)ExitCodes.GenerationFailed : (int)ExitCodes.Success;
        }
Beispiel #2
0
        public HelpWriter([NotNull] IConsoleWriter consoleWriter)
        {
            if (consoleWriter == null)
            {
                throw new ArgumentNullException(nameof(consoleWriter));
            }
            _consoleWriter = consoleWriter;
            _consoleInputToPreferenceConverter = new ConsoleInputToPreferenceConverter();

            try
            {
                int width = Console.WindowWidth;
                _width = width - 20;
                if (_width < 20)
                {
                    _width = 20;
                }
            }
            catch (Exception)
            {
                // probably not actually running in a console window
                _width = 50;
            }
        }