private void CheckForUpdatesButton_Click(object sender, EventArgs e) { try { var latestVersion = AutoUpdate.FetchLatestCkanVersion(); if (latestVersion.IsGreaterThan(new Version(Meta.Version()))) { InstallUpdateButton.Enabled = true; } else { InstallUpdateButton.Enabled = false; } LatestVersionLabel.Text = latestVersion.ToString(); } catch (Exception ex) { } }
private void InstallUpdateButton_Click(object sender, EventArgs e) { AutoUpdate.StartUpdateProcess(true); }
protected override void OnLoad(EventArgs e) { Location = m_Configuration.WindowLoc; Size = m_Configuration.WindowSize; if (!m_Configuration.CheckForUpdatesOnLaunchNoNag) { log.Debug("Asking user if they wish for autoupdates"); if (new AskUserForAutoUpdatesDialog().ShowDialog() == DialogResult.OK) { m_Configuration.CheckForUpdatesOnLaunch = true; } m_Configuration.CheckForUpdatesOnLaunchNoNag = true; m_Configuration.Save(); } if (m_Configuration.CheckForUpdatesOnLaunch) { try { log.Info("Making autoupdate call"); var latest_version = AutoUpdate.FetchLatestCkanVersion(); var current_version = new Version(Meta.Version()); if (latest_version.IsGreaterThan(current_version)) { log.Debug("Found higher ckan version"); var release_notes = AutoUpdate.FetchLatestCkanVersionReleaseNotes(); var dialog = new NewUpdateDialog(latest_version.ToString(), release_notes); if (dialog.ShowDialog() == DialogResult.OK) { log.Info("Start ckan update"); AutoUpdate.StartUpdateProcess(true); } } } catch (Exception exception) { m_User.RaiseError("Error in autoupdate: \n\t" + exception.Message + ""); log.Error("Error in autoupdate", exception); } } m_UpdateRepoWorker = new BackgroundWorker { WorkerReportsProgress = false, WorkerSupportsCancellation = true }; m_UpdateRepoWorker.RunWorkerCompleted += PostUpdateRepo; m_UpdateRepoWorker.DoWork += UpdateRepo; m_InstallWorker = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; m_InstallWorker.RunWorkerCompleted += PostInstallMods; m_InstallWorker.DoWork += InstallMods; m_CacheWorker = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; m_CacheWorker.RunWorkerCompleted += PostModCaching; m_CacheWorker.DoWork += CacheMod; m_User.displayYesNo = YesNoDialog; URLHandlers.RegisterURLHandler(m_Configuration, m_User); m_User.displayYesNo = null; ApplyToolButton.Enabled = false; CurrentInstanceUpdated(); if (m_Configuration.RefreshOnStartup) { UpdateRepo(); } Text = String.Format("CKAN {0} - KSP {1} -- {2}", Meta.Version(), CurrentInstance.Version(), CurrentInstance.GameDir()); KSPVersionLabel.Text = String.Format("Kerbal Space Program {0}", CurrentInstance.Version()); if (m_CommandLineArgs.Length >= 2) { var identifier = m_CommandLineArgs[1]; if (identifier.StartsWith("//")) { identifier = identifier.Substring(2); } else if (identifier.StartsWith("ckan://")) { identifier = identifier.Substring(7); } if (identifier.EndsWith("/")) { identifier = identifier.Substring(0, identifier.Length - 1); } int i = 0; log.Debug("Attempting to select mod from startup parameters"); foreach (DataGridViewRow row in ModList.Rows) { var module = ((GUIMod)row.Tag); if (identifier == module.Identifier) { ModList.FirstDisplayedScrollingRowIndex = i; row.Selected = true; break; } i++; } log.Debug("Failed to select mod from startup parameters"); } var pluginsPath = Path.Combine(CurrentInstance.CkanDir(), "Plugins"); if (!Directory.Exists(pluginsPath)) { Directory.CreateDirectory(pluginsPath); } m_PluginController = new PluginController(pluginsPath, true); log.Info("GUI started"); ModList.Select(); base.OnLoad(e); }
public static void ClearCache() { instance = new AutoUpdate(); }
private static void RegisterURLHandler_Linux() { var parser = new FileIniDataParser(); // Yes, 'Assigment' is the spelling used by the library. parser.Parser.Configuration.AssigmentSpacer = ""; IniData data; log.InfoFormat("Trying to register URL handler"); if (!File.Exists(MimeAppsListPath)) { log.InfoFormat("{0} does not exist, trying to create it", MimeAppsListPath); File.WriteAllLines(MimeAppsListPath, new string[] { "[Default Applications]" }); } try { data = parser.ReadFile(MimeAppsListPath); } catch (DirectoryNotFoundException ex) { log.InfoFormat("Skipping URL handler: {0}", ex.Message); return; } catch (FileNotFoundException ex) { log.InfoFormat("Skipping URL handler: {0}", ex.Message); return; } catch (ParsingException ex) { log.InfoFormat("Skipping URL handler: {0}", ex.Message); return; } if (data["Added Associations"] == null) { data.Sections.AddSection("Added Associations"); } data["Added Associations"].RemoveKey("x-scheme-handler/ckan"); data["Added Associations"].AddKey("x-scheme-handler/ckan", HandlerFileName); parser.WriteFile(MimeAppsListPath, data); var handlerPath = Path.Combine(ApplicationsPath, HandlerFileName); var handlerDirectory = Path.GetDirectoryName(handlerPath); if (handlerDirectory == null || !Directory.Exists(handlerDirectory)) { log.ErrorFormat("Error: {0} doesn't exist", handlerDirectory); return; } if (File.Exists(handlerPath)) { File.Delete(handlerPath); } File.WriteAllText(handlerPath, ""); data = parser.ReadFile(handlerPath); data.Sections.AddSection("Desktop Entry"); data["Desktop Entry"].AddKey("Version", "1.0"); data["Desktop Entry"].AddKey("Type", "Application"); data["Desktop Entry"].AddKey("Exec", "mono \"" + System.Reflection.Assembly.GetExecutingAssembly().Location + "\" gui %u"); data["Desktop Entry"].AddKey("Icon", "ckan"); data["Desktop Entry"].AddKey("StartupNotify", "true"); data["Desktop Entry"].AddKey("NoDisplay", "true"); data["Desktop Entry"].AddKey("Terminal", "false"); data["Desktop Entry"].AddKey("Categories", "Utility"); data["Desktop Entry"].AddKey("MimeType", "x-scheme-handler/ckan"); data["Desktop Entry"].AddKey("Name", "CKAN Launcher"); data["Desktop Entry"].AddKey("Comment", "Launch CKAN"); parser.WriteFile(handlerPath, data); AutoUpdate.SetExecutable(handlerPath); }