// ATTENTION: Use ConsoleWriter instead of Console.WriteLine to use Colors /// <summary> /// Starts the backup program initiating all required actions like profile choosing, parsing and running /// the backup. /// </summary> /// <param name="args">unused command line arguments</param> static void Main(string[] args) { // change to English for testing //Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en"); try { // init profile selector (might throw BackupException if "../backup_profiles" does not exist) BackupProfileSelector profileSelector = new BackupProfileSelector(); profileSelector.InitProfilePaths(); // create necessary instances BackupProfileConverter profileConverter = new BackupProfileConverter(); ExcludeUtil excludeUtil = new ExcludeUtil(); // execute main loop (might forward BackupException if the backup cannot be processed) Start starter = new Start(); starter.DoMainLoop(profileSelector, profileConverter, excludeUtil); } catch (BackupException e) { // all BackupExceptions are forwarded here to provide a single exit point when an error occurs ExitUtil.ExitAfterError(e); } // backup was successful or regularly cancelled by user, so exit the application in the default way ExitUtil.ExitWithoutError(); }