コード例 #1
0
        public static void Main(string[] args)
        {
            var context = GeneratorContextFactory.Create <HelloWorldGenerator>(args);

            new GeneratorBootstrapperFactory().Create(context).Execute();
            Console.WriteLine("Completed");
        }
コード例 #2
0
        public virtual int Run(TempestRunnerArguments runnerArgs)
        {
            Type generatorType = null;

            if (runnerArgs.GeneratorName.IsNotNullOrWhiteSpace())
            {
                var directoriesToSearch = _directoryFinder.FindGeneratorDirectories(runnerArgs.SearchPath).ToArray();
                generatorType = _generatorFinder.LocateGenerator(directoriesToSearch, runnerArgs.GeneratorName);
            }

            if (generatorType == null && runnerArgs.GeneratorName.IsNullOrWhiteSpace())
            {
                generatorType = GetGeneratorFromSelection(runnerArgs);
            }

            if (generatorType == null)
            {
                throw new GeneratorNotFoundException("No generators found");
            }

            var templateDirectory = generatorType.GetAssembly()
                                    .GetAssemblyDirectory()
                                    .GetDirectories("Template")
                                    .FirstOrDefault() ??
                                    generatorType.GetAssembly().GetAssemblyDirectory();

            var generatorContext = GeneratorContextFactory.Create(generatorType,
                                                                  _directoryFinder.FindTempestExecutableDirectory(),
                                                                  _directoryFinder.FindWorkingDirectory(), templateDirectory, x =>
            {
                x.Arguments     = runnerArgs.GeneratorParameters;
                x.GeneratorName = runnerArgs.GeneratorName;
            });

//            var generatorContext = new GeneratorContext
//            {
//                GeneratorType = generatorType,
//                Arguments = runnerArgs.GeneratorParameters,
//                GeneratorName = runnerArgs.GeneratorName,
//                TemplateDirectory = generatorType.GetAssembly().GetAssemblyDirectory().GetDirectories("Template").FirstOrDefault() ?? generatorType.GetAssembly().GetAssemblyDirectory(),
//                WorkingDirectory = _directoryFinder.FindWorkingDirectory(),
//                TempestDirectory = _directoryFinder.FindTempestExecutableDirectory()
//            };

            return(_generatorRunner.Run(generatorContext));
        }