/// <summary> /// Initialize the generation context: settings, logger, /// tiles configuration and tile generator. /// </summary> private void Init() { // Load settings try { _settings = Settings.LoadOrDefault(Settings.SETTINGS_PATH); _logger = new Logger(_settings.LogFilePath); } catch (Exception ex) { _msg.InvalidSettings(ex); Environment.Exit(11); return; } // Initialize the logger _msg.Logger = _logger; try { _logger.Init(); } catch (Exception ex) { _msg.InvalidLogFile(ex); Environment.Exit(12); return; } _logger.Success("Loaded settings"); // Load tiles configuration try { _tilesConfig = TileConfig.Load(_settings.TilesConfigPath); } catch (Exception ex) { _msg.InvalidTilesConfig(ex); Environment.Exit(13); } _logger.Success("Loaded tiles configuration"); // Initialize the tile generator _generator = new TileGenerator(_settings, _logger); _logger.Success("Initialized tiles generator"); }
/// <summary> /// Reload the tiles configuration file. /// </summary> /// <param name="sender">Event sender</param> /// <param name="e">Event arguments</param> private void ReloadTilesConfigurationFile(object sender, RoutedEventArgs e) { try { _tilesConfig = TileConfig.Load(_settings.TilesConfigPath); _apps = null; _viewModel.SelectedApps = null; _viewModel.IsReady = false; _msg.LoadedTilesConfigFile(); LookupApplications(); } catch (Exception ex) { _msg.InvalidTilesConfig(ex); } }
/// <summary> /// Load configuration, initialize and run the program. /// </summary> /// <param name="args">Command line arguments</param> /// <returns>Exit code</returns> private int Run(string[] args = null) { var settings = Settings.LoadOrDefault(Settings.SETTINGS_PATH); _logger = new Logger(settings.LogFilePath); _logger.Init(); _logger.Success("Loaded settings"); var tilesConfig = TileConfig.Load(settings.TilesConfigPath); _logger.Success("Loaded tiles configuration"); var generator = new TileGenerator(settings, _logger); _logger.Success("Initialized tiles generator"); var apps = generator.LookupApps(tilesConfig); if (apps.Count == 0) { _logger.Warning("No applications to process, check the shortcuts locations"); return(1); } else { _logger.Success($"Found {apps.Count} applications to process"); if (args.Length > 0) { apps = apps.Keep(args); // Only process given apps } var processedApps = generator.GenerateTiles(tilesConfig, apps); if (processedApps.Count > 0) { _logger.Success($"Processed {processedApps.Count}/{apps.Count} application(s) ({string.Join(", ", processedApps)})"); } else { _logger.Info("No tiles were generated"); } } return(0); }