/// <summary> /// Removes a file generator from the service. /// </summary> /// <param name="fileType">The file type of generator to remove.</param> public void RemoveFileGenerator(GeneratedFileType fileType) { var fileGenerator = _fileGenerators.SingleOrDefault(fg => fg.OutputFileType == fileType); if (fileGenerator != null) { _fileGenerators.Remove(fileGenerator); } }
private string[] FromSpecToSources(string specFile, string outputDir, GeneratedFileType[] types) { var compiler = LanguageHelper.GetCompilerPath(ServiceSpecType.bond_3_0); var bondc_dir = Path.GetDirectoryName(compiler); string[] templates = { "Rules_Bond_CSharp_Client.tt" }; var arguments = specFile + " /c#" + templates.VerboseCombine(" ", t => " /T:" + Path.Combine(bondc_dir, t)) + " /O:" + outputDir; var err = SystemHelper.RunProcess(compiler, arguments); Trace.Assert(err == 0, "bondc code generation failed"); List<string> sources = new List<string>(); foreach (var t in types) { string fname = Path.Combine(outputDir, Path.GetFileNameWithoutExtension(specFile) + _postfix[(int)t]); Trace.Assert(File.Exists(fname)); sources.Add(fname); } return sources.ToArray(); }
private IEnumerable<string> FromAllSpecToSources(string mainSpecFile, IEnumerable<string> refSpecFiles, string outputDir, IEnumerable<GeneratedFileType> typesForMain, GeneratedFileType[] typesForReferenced) { var sources = new List<string>(); sources.AddRange(FromSpecToSources(mainSpecFile, outputDir, typesForMain)); foreach (var refSpecFile in refSpecFiles) { sources.AddRange(FromSpecToSources(refSpecFile, outputDir, typesForReferenced)); } return sources.ToArray(); }