Ejemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
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));
                }
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 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;
     }
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
 public List <StudioVersion> GetNotSupportedStudioVersions(PluginPackageInfo pluginPackage)
 {
     return(_installedStudioVersions.Where(x => !StudioVersionSuported(pluginPackage.MinRequiredProductVersion,
                                                                       pluginPackage.MaxRequiredProductVersion, x.ExecutableVersion)).ToList());
 }
Ejemplo n.º 8
0
 public InstallService(PluginPackageInfo pluginPackageInfo, List <StudioVersion> studioVersions)
 {
     _pluginPackageInfo = pluginPackageInfo;
     StudioVersions     = studioVersions;
 }
Ejemplo n.º 9
0
 public InstallService(PluginPackageInfo pluginPackageInfo)
     : this(pluginPackageInfo, new List <StudioVersion>())
 {
 }