Exemple #1
0
		public Config(Switches switches)
		{
			m_switches = switches;
			m_debugLogDir = Path.Combine(Environment.CurrentDirectory, "DebugLogs");

			ObserveCollection(m_switches.GitConfigSet, x => AddGitConfigOption(x, add: false));
			ObserveCollection(m_switches.GitConfigAdd, x => AddGitConfigOption(x, add: true));

			TagMatcher = new InclusionMatcher(ignoreCase: false);
			TagRename = new Renamer();

			BranchMatcher = new InclusionMatcher(ignoreCase: false);
			BranchRename = new Renamer();
			BranchRename.AddRule(new RenameRule("^MAIN$", "master"));

			ObserveCollection(m_switches.IncludeFile, x => AddIncludeRule(m_fileMatcher, x, include: true));
			ObserveCollection(m_switches.ExcludeFile, x => AddIncludeRule(m_fileMatcher, x, include: false));
			ObserveCollection(m_switches.HeadOnly, x => AddIncludeRule(m_headOnlyMatcher, x, include:true));

			ObserveCollection(m_switches.IncludeTag, x => AddIncludeRule(TagMatcher, x, include: true));
			ObserveCollection(m_switches.ExcludeTag, x => AddIncludeRule(TagMatcher, x, include: false));
			ObserveCollection(m_switches.RenameTag, x => AddRenameRule(TagRename, x));

			ObserveCollection(m_switches.IncludeBranch, x => AddIncludeRule(BranchMatcher, x, include: true));
			ObserveCollection(m_switches.ExcludeBranch, x => AddIncludeRule(BranchMatcher, x, include: false));
			ObserveCollection(m_switches.RenameBranch, x => AddRenameRule(BranchRename, x));
		}
Exemple #2
0
		static int Main(string[] args)
		{
			try
			{
				var switches = new Switches();
				m_config = new Config(switches);
				m_config.ParseCommandLineSwitches(args);

				if (switches.Help)
				{
					Console.Out.WriteLine(switches.GetHelpText());
					return 0;
				}

				using (m_log = new Logger(m_config.DebugLogDir, debugEnabled: m_config.Debug))
				{
					try
					{
						if (m_config.CreateCvsLog)
							RunOperation("Download CVS Log", () => Cvs.DownloadCvsLog(m_config.CvsLogFileName, m_config.Sandbox));

						RunOperation("Analysis", Analyse);

						if (m_config.DoImport)
						{
							RunOperation("Import", Import);

							if (m_config.Repack)
								RunOperation("Repack", Repack);
						}
					}
					catch (Exception e)
					{
						m_log.WriteLine("{0}", e);
						throw;
					}
				}
			}
			catch (Exception e)
			{
				Console.Error.WriteLine(e);
				return 1;
			}

			return 0;
		}