static int Main(string[] raw) { ArgumentList args = new ArgumentList(raw); List<string> input = new List<string>(args.Unnamed); if (args.Contains("nologo") == false) { Console.WriteLine("StampCopyright.exe"); Console.WriteLine("Copyright 2009-{0:yyyy} by Roger Knapp, Licensed under the Apache License, Version 2.0", DateTime.Now); Console.WriteLine(""); } if ((args.Count == 0 && args.Unnamed.Count == 0) || args.Contains("?") || args.Contains("help")) return DoHelp(); try { args.TryGetValue("svn", out _subversion); Log.ConsoleLevel = System.Diagnostics.TraceLevel.Warning; _changes = 0; _copyText = File.ReadAllText(input[0]).Trim(); _copyText = _copyText.Replace("YEAR", DateTime.Now.Year.ToString()); _copyText = _copyText.Replace("yyyy", DateTime.Now.Year.ToString()); input.RemoveAt(0); ProjectVisitor visitor = new ProjectVisitor(false, input.ToArray()); visitor.VisitProjectItems(VisitProjectItem); } catch (ApplicationException ae) { Log.Error(ae); Console.Error.WriteLine(); Console.Error.WriteLine(ae.Message); Environment.ExitCode = -1; } catch (Exception e) { Log.Error(e); Console.Error.WriteLine(); Console.Error.WriteLine(e.ToString()); Environment.ExitCode = -1; } if (args.Contains("wait")) { Console.WriteLine(); Console.WriteLine("Press [Enter] to continue..."); Console.ReadLine(); } return Environment.ExitCode; }
private static void Visitor(bool fast, string[] projectFiles, Action <IGeneratorArguments> func) { ProjectVisitor projects = new ProjectVisitor(fast, projectFiles); Check.Assert <ApplicationException>(projects.Count > 0, "Unable to locate any projects matching: " + String.Join(" ", projectFiles)); projects.VisitProjectItems( delegate(IProjectInfo p, IProjectItem item) { if (!StringComparer.OrdinalIgnoreCase.Equals("CmdTool", item.CustomTool)) { return; } string itemPath = item.FullFileName; if (File.Exists(itemPath)) { GeneratorArguments args = new GeneratorArguments(true, itemPath, item, p); args.OutputMessage += OutputMessage; func(args); } } ); }
private static void Visitor(bool fast, string[] projectFiles, Action<IGeneratorArguments> func) { ProjectVisitor projects = new ProjectVisitor(fast, projectFiles); Check.Assert<ApplicationException>(projects.Count > 0, "Unable to locate any projects matching: " + String.Join(" ", projectFiles)); projects.VisitProjectItems( delegate(IProjectInfo p, IProjectItem item) { if (!StringComparer.OrdinalIgnoreCase.Equals("CmdTool", item.CustomTool)) return; string itemPath = item.FullFileName; if (File.Exists(itemPath)) { GeneratorArguments args = new GeneratorArguments(true, itemPath, item, p); args.OutputMessage += OutputMessage; func(args); } } ); }