private static void Main(string[] args) { var parser = new Parser(); if (parser.ParseArguments(args, Dpo)) { if (!string.IsNullOrEmpty(Dpo.SourcePlugin)) { var pluginPackageInfo = PluginPackageInfo.CreatePluginPackageInfo(Dpo.SourcePlugin); PluginPackages.Add(pluginPackageInfo); } if (!string.IsNullOrEmpty(Dpo.FolderPath)) { var pluginsPath = Directory.GetFiles(Dpo.FolderPath, "*.sdlplugin", SearchOption.AllDirectories); foreach (var plugin in pluginsPath) { var pluginInfo = PluginPackageInfo.CreatePluginPackageInfo(plugin); PluginPackages.Add(pluginInfo); } } _studioVersionService = new StudioVersionService(); _installedStudioVersions = _studioVersionService.GetInstalledStudioVersions(); var backgroundWorker = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged; backgroundWorker.DoWork += BackgroundWorker_DoWork; backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; if (!backgroundWorker.IsBusy) { backgroundWorker.RunWorkerAsync(); while (backgroundWorker.IsBusy) { Thread.Sleep(100); } if (Dpo.CloseConsole) { Console.WriteLine(@"Please press q to close the window."); var key = Console.ReadKey(); if (key.KeyChar.Equals('q')) { Environment.Exit(0); } } } } }
static void Main(string[] args) { WindowDPIAwarness.SetPerMonitorDpiAwareness(ProcessDpiAwareness.Process_DPI_Unaware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); InitializeLoggingConfiguration(); var logger = LogManager.GetLogger("log"); if (args.Length == 0) { Application.Run(new PluginForm(logger)); } else { var parser = new Parser(); if (parser.ParseArguments(args, Dpo)) { var processStartInfo = new ProcessStartInfo("Sdl.Community.SdlPluginInstaller.Cmd.exe", string.Join(" ", args)) { UseShellExecute = false }; var process = new Process { StartInfo = processStartInfo, }; process.Start(); } else { var pluginPackageInfo = PluginPackageInfo.CreatePluginPackageInfo(args[0]); if (string.IsNullOrEmpty(pluginPackageInfo.PluginName)) { MessageBox.Show( string.Format( "There is no data in the package manifest. Please ask the plugin developer to add relevant information to the package manifest."), Resources.Program_Main_Invalid_package, MessageBoxButtons.OK); return; } Application.ThreadException += Application_ThreadException; Application.Run(new InstallerForm(pluginPackageInfo, logger)); } } }
public void UninstallPlugin(PluginPackageInfo pluginInfo) { if (File.Exists(pluginInfo.Path)) { File.Delete(pluginInfo.Path); } var path = pluginInfo.Path.Replace("Packages", "Unpacked"); var folderPath = path.Remove(path.LastIndexOf(@"\", StringComparison.Ordinal)); var pathCombined = Path.Combine(folderPath, pluginInfo.PluginName); if (Directory.Exists(pathCombined)) { Directory.Delete(pathCombined, true); } }
public InstallerForm(PluginPackageInfo pluginPackageInfo, Logger logger) : this() { _logger = logger; try { _pluginPackageInfo = pluginPackageInfo; _studioVersionService = new StudioVersionService(); _installService = new InstallService(_pluginPackageInfo); } catch (Exception exception) { _logger.Error(exception, "Error constructing installer window", null); throw; } }
private void CheckForProcess(PluginPackageInfo pluginToUninstall, int rowIndex) { _installService = new InstallService(pluginToUninstall); var processes = _installService.GetStudioProcesses(); if (processes.Count <= 0) { _uninstallService.UninstallPlugin(pluginToUninstall); installedPluginListView.RemoveObject(pluginToUninstall); _installedPlugins.RemoveRange(rowIndex, 1); } else { using (var processesForm = new Processes(processes)) { processesForm.ShowDialog(); } } }
public List <PluginPackageInfo> GetPluginPackages(string[] pluginPath) { var pluginList = new List <PluginPackageInfo>(); foreach (var path in pluginPath) { try { pluginList.Add(PluginPackageInfo.CreatePluginPackageInfo(path)); } catch (UnauthorizedAccessException exception) { _needsAdminRights = true; _logger.Error(exception, "Admin rights are required"); } catch (Exception ex) { _logger.Error(ex, "Error at getting plugins packages "); } } return(pluginList); }
public List <StudioVersion> GetNotSupportedStudioVersions(PluginPackageInfo pluginPackage) { return(_installedStudioVersions.Where(x => !StudioVersionSuported(pluginPackage.MinRequiredProductVersion, pluginPackage.MaxRequiredProductVersion, x.ExecutableVersion)).ToList()); }
public InstallService(PluginPackageInfo pluginPackageInfo, List <StudioVersion> studioVersions) { _pluginPackageInfo = pluginPackageInfo; StudioVersions = studioVersions; }
public InstallService(PluginPackageInfo pluginPackageInfo) : this(pluginPackageInfo, new List <StudioVersion>()) { }