public static void Main(string[] args) { try { var commandLineArguments = ParseCommandLineArguments(args); var assemblyLoader = new AssemblyLoader(); var assemblies = assemblyLoader.LoadAssemblies(commandLineArguments.AssemblyFolder); var featureProcessor = new FeatureProcessor(); Features features = featureProcessor.ProcessAssemblies(assemblies); var tgfWriter = new TgfWriter(); tgfWriter.WriteTgfFile(commandLineArguments.OutputPath, features); StartYEd(commandLineArguments.OutputPath); Console.WriteLine("done output file is " + commandLineArguments.OutputPath); } catch (Exception exception) { Console.WriteLine("failed with exception:"); Console.WriteLine(exception); } }
public static void Main(string[] args) { try { AbsoluteFilePath outputPath = null; AbsoluteFolderPath assemblyFolder = null; bool includeFactories = false; bool includeDependencies = false; AbsoluteFilePath yedPath = @"C:\Program Files (x86)\yWorks\yEd\yEd.exe"; string outputFormat = "tgf"; CommandLineConfiguration commandLineConfiguration = CommandLineParserConfigurator .Create() .WithNamed("output", path => outputPath = path) .Required() .DescribedBy("output.tgf", "The absolute output file path. Must have extension .tgf") .WithNamed("folder", folder => assemblyFolder = folder) .Required() .DescribedBy("binary folder", "The folder containing the binaries to analyze. Must contain all direct and indirect dependencies, too.") .WithSwitch("factories", () => includeFactories = true) .DescribedBy("Include information about feature factory.") .WithSwitch("dependencies", () => includeDependencies = true) .DescribedBy("Include information about feature dependencies.") .WithNamed("-yed", path => yedPath = path) .DescribedBy("yEd path", @"Path specifing location of yEd. If not specified, the default installation path is used (C:\Program Files (x86)\yWorks\yEd\yEd.exe).") .WithNamed("format", format => outputFormat = format) .DescribedBy("format", @"Format define dgml or tfg output. The default is tgf. File extension will automatical change to dgml") .BuildConfiguration(); var parser = new CommandLineParser(commandLineConfiguration); ParseResult parseResult = parser.Parse(args); if (!parseResult.Succeeded) { WriteUsageToConsole(commandLineConfiguration, parseResult); return; } var assemblyLoader = new AssemblyLoader(); var assemblies = assemblyLoader.LoadAssemblies(assemblyFolder); var featureProcessor = new FeatureProcessor(); Features features = featureProcessor.ProcessAssemblies(assemblies); if (outputFormat.ToLower() == "dgml") { outputPath = Path.ChangeExtension(outputPath, ".dgml"); DgmlProcessor dgmlProcessor = new DgmlProcessor(); dgmlProcessor.Write(features, outputPath); } else { var tgfWriter = new TgfWriter(); tgfWriter.WriteTgfFile(outputPath, features, includeFactories, includeDependencies); StartYEd(yedPath, outputPath); } Console.WriteLine("done output file is " + outputPath); } catch (Exception exception) { Console.WriteLine("failed with exception:"); Console.WriteLine(exception); } }