private void generateSrcMLDoc(string rootDirectory, string xmlFileName, IEnumerable <string> fileNames) { var arguments = DefaultNamespaceArguments; var tempFileListing = Path.GetTempFileName(); using (StreamWriter writer = new StreamWriter(tempFileListing)) { foreach (var fileName in fileNames) { writer.WriteLine(fileName); } } arguments.Add(String.Format(CultureInfo.InvariantCulture, "--files-from=\"{0}\"", tempFileListing)); arguments.Add(String.Format(CultureInfo.InvariantCulture, "--directory=\"{0}\"", rootDirectory)); arguments.Add(String.Format(CultureInfo.InvariantCulture, "--output=\"{0}\"", xmlFileName)); if (ExtensionMapping.NonDefaultValueCount > 0) { arguments.Add(String.Format(CultureInfo.InvariantCulture, "--register-ext {0}", KsuAdapter.ConvertMappingToString(ExtensionMapping))); } var argumentString = KsuAdapter.MakeArgumentString(arguments); try { KsuAdapter.RunExecutable(this.src2srcml_exe, argumentString); } catch (SrcMLRuntimeException e) { throw new SrcMLException("src2srcml.exe encountered an error", e); } finally { File.Delete(tempFileListing); } }
/// <summary> /// Converts <paramref name="extensionMap"/> to <c>--register-ext EXTENSIONMAP</c> /// </summary> /// <param name="extensionMap">the extension map to use</param> /// <returns>The extension map command line parameter</returns> private static string MakeExtensionMapArgument(Dictionary <string, Language> extensionMap) { return(extensionMap.Count > 0 ? String.Format("--register-ext {0}", KsuAdapter.ConvertMappingToString(extensionMap)) : String.Empty); }
/// <summary> /// Runs this executable and places the output in the specified output file. /// This executable is run with the following string <c>[this.ExecutablePath] --register-ext [ExtensionMapping] --output=[outputfile] [addititionlArguments]</c> /// </summary> /// <param name="outputFile">The output file.</param> /// <param name="additionalArguments">The additional arguments.</param> public void Run(string outputFile, Collection <string> additionalArguments) { if (null == additionalArguments) { throw new ArgumentNullException("additionalArguments"); } var arguments = new Collection <string>(); foreach (var argument in this.NamespaceArguments) { arguments.Add(argument); } if (ExtensionMapping.NonDefaultValueCount > 0) { arguments.Add(String.Format(CultureInfo.InvariantCulture, "--register-ext {0}", KsuAdapter.ConvertMappingToString(ExtensionMapping))); } arguments.Add(String.Format(CultureInfo.InvariantCulture, "--output=\"{0}\"", outputFile)); foreach (var arg in additionalArguments) { arguments.Add(arg); } try { base.Run(arguments); } catch (SrcMLRuntimeException e) { throw new SrcMLException(String.Format(CultureInfo.CurrentCulture, "{0} encountered an error: {1}", this.ExecutablePath, e.Message), e); } }