public Configuration(CommandLineOptions options)
            {
                this.Main = (args) => DictionaryBuilder.Main(args);

                this.Name             = "kuromoji-build-dictionary";
                this.Description      = FromResource("Description");
                this.ExtendedHelpText = FromResource("ExtendedHelpText");

                this.Format = this.Argument(
                    "<FORMAT>",
                    FromResource("FormatDescription"));
                this.InputDirectory = this.Argument(
                    "<INPUT_DIRECTORY>",
                    FromResource("InputDirectoryDescription"));
                this.OutputDirectory = this.Argument(
                    "<OUTPUT_DIRECTORY>",
                    FromResource("OutputDirectoryDescription"));
                this.InputDirectoryEncoding = this.Option(
                    "-e|--encoding <ENCODING>",
                    FromResource("InputDirectoryEncodingDescription"),
                    CommandOptionType.SingleValue);
                this.Normalize = this.Option(
                    "-n|--normalize",
                    FromResource("NormalizeDescription"),
                    CommandOptionType.NoValue);

                this.OnExecute(() => new AnalysisKuromojiBuildDictionaryCommand().Run(this));
            }
        public void TestBuildDictionaryEndToEnd()
        {
            var inputDir  = CreateTempDir("build-dictionary-input");
            var outputDir = CreateTempDir("build-dictionary-output");

            using (var zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "custom-dictionary-input.zip"))
            {
                TestUtil.Unzip(zipFileStream, inputDir);
            }

            var args = new List <string>();

            args.Add("ipadic");           // dictionary format
            args.Add(inputDir.FullName);  // input dir
            args.Add(outputDir.FullName); // output dir
            args.Add("euc-jp");           // encoding
            args.Add("true");             // normalize?

            DictionaryBuilder.Main(args.ToArray());
        }