public static void Main(string[] args) { var context = GeneratorContextFactory.Create <HelloWorldGenerator>(args); new GeneratorBootstrapperFactory().Create(context).Execute(); Console.WriteLine("Completed"); }
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)); }