コード例 #1
0
        public ExecutionResult Update(InstallDto installOptions)
        {
            var logger = new StringLogger();

            try
            {
                var files = Directory.GetFiles(installOptions.Directory, "*.nupkg");

                if (files.Count() == 0)
                {
                    logger.Log("No package to uninstall found, proceeding with a normal install.");
                }

                if (files.Count() >= 1)
                {
                    var filename    = PackageHelpers.ExtractPackageName(files.First()).Trim();
                    var packageInfo = new PackageInfo()
                    {
                        Name    = filename.Substring(filename.LastIndexOf("\\") + 1),
                        Version = PackageHelpers.ExtractPackageVersion(files.First()).Trim(),
                        InstallationDirectory = installOptions.Directory,
                        Configuration         = installOptions.Configuration
                    };
                    var packageRemover = new PackageRemover();
                    packageRemover.Logger = logger;

                    var additionalParams = installOptions.AdditionalParameters;
                    packageRemover.Remove(packageInfo, new string[] { installOptions.Directory }, additionalParams, installOptions.UninstallScript);
                }


                var packageInfo2 = new PackageInfo()
                {
                    Configuration         = installOptions.Configuration,
                    InstallationDirectory = installOptions.Directory,
                    Name    = installOptions.Application,
                    Version = installOptions.Version
                };

                var PackageInstaller = new PackageInstaller();
                PackageInstaller.Logger = logger;
                PackageInstaller.Install(packageInfo2, new string[] { installOptions.Repository }, installOptions.AdditionalParameters, installOptions.InstallScript, installOptions.ConfigurationFile, installOptions.ConfigurationTransform);
                return(new ExecutionResult()
                {
                    Success = logger.Logs.All(x => !x.Error),
                    Log = logger.Logs
                });
            }
            catch (Exception e)
            {
                logger.Log(e.InnerException != null ? e.InnerException.Message : e.Message, true);

                return(new ExecutionResult()
                {
                    Success = false,
                    Exception = e.InnerException != null ? e.InnerException.Message : e.Message,
                    Log = logger.Logs
                });
            }
        }
コード例 #2
0
        public ExecutionResult Install(InstallDto installOptions)
        {
            var logger = new StringLogger();

            try
            {
                var packageInfo = new PackageInfo();

                packageInfo.Configuration         = installOptions.Configuration;
                packageInfo.InstallationDirectory = installOptions.Directory;
                packageInfo.Name    = installOptions.Application;
                packageInfo.Version = installOptions.Version;
                var PackageInstaller = new PackageInstaller();
                PackageInstaller.Logger = logger;

                PackageInstaller.Install(packageInfo, new string[] { installOptions.Repository }, installOptions.AdditionalParameters, installOptions.InstallScript, installOptions.ConfigurationFile, installOptions.ConfigurationTransform);

                return(new ExecutionResult()
                {
                    Success = logger.Logs.All(x => !x.Error),
                    Log = logger.Logs
                });
            }
            catch (Exception e)
            {
                logger.Log(e.InnerException != null ? e.InnerException.Message : e.Message, true);
                return(new ExecutionResult()
                {
                    Success = false,
                    Exception = e.InnerException != null ? e.InnerException.Message : e.Message,
                    Log = logger.Logs
                });
            }
        }
コード例 #3
0
        private void ThreadProc()
        {
            try
            {
                using (var installer = new PackageInstaller(SetupConfiguration, new Progress(this)))
                {
                    installer.Install();
                }

                BeginInvoke(new Action(() => MainForm.SetStep(1)));
            }
            catch (Exception ex)
            {
                BeginInvoke(new Action(() =>
                {
                    MessageBox.Show(
                        this,
                        String.Format(
                            Labels.UnexpectedSituation,
                            ex.Message
                            ),
                        Program.Configuration.Title,
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error
                        );

                    MainForm.Dispose();
                }));
            }
        }
コード例 #4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// The InstallPackages method installs the packages
        /// </summary>
        /// -----------------------------------------------------------------------------
        private void InstallPackages(ref bool clearClientCache)
        {
            //Iterate through all the Packages
            for (int index = 0; index <= Packages.Count - 1; index++)
            {
                PackageInstaller installer = Packages.Values[index];
                //Check if package is valid
                if (installer.Package.IsValid)
                {
                    if (installer.Package.InstallerInfo.Installed || installer.Package.InstallerInfo.RepairInstall)
                    {
                        clearClientCache = true;
                    }

                    InstallerInfo.Log.AddInfo(Util.INSTALL_Start + " - " + installer.Package.Name);
                    installer.Install();
                    if (InstallerInfo.Log.Valid)
                    {
                        InstallerInfo.Log.AddInfo(Util.INSTALL_Success + " - " + installer.Package.Name);
                    }
                    else
                    {
                        InstallerInfo.Log.AddInfo(Util.INSTALL_Failed + " - " + installer.Package.Name);
                    }
                }
                else
                {
                    InstallerInfo.Log.AddFailure(Util.INSTALL_Aborted + " - " + installer.Package.Name);
                }
            }
        }
コード例 #5
0
        public string Execute([NotNull] string data, [NotNull] string fileName)
        {
            var packagePath = Upload(data, fileName);

            var installer = new PackageInstaller(packagePath);

            installer.Install();

            return(string.Empty);
        }
コード例 #6
0
        public void Execute(string[] args)
        {
            if (args.Length < 1)
            {
                LogTracer.LogError("[ERROR] The command, \"plpm install\" requires 1 arg.");
            }
            else
            {
                var pkgname   = args[0];
                var installer = new PackageInstaller();

                //
                // Install it.
                //
                var current_dir = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar;
                installer.Install(pkgname, current_dir);
            }
        }
コード例 #7
0
        public string Execute([NotNull] string file, [NotNull] string uploadedFile)
        {
            Assert.ArgumentNotNull(uploadedFile, nameof(uploadedFile));
            Assert.ArgumentNotNull(file, nameof(file));

            string fileName;

            if (!string.IsNullOrEmpty(uploadedFile))
            {
                fileName = Upload(file);
            }
            else
            {
                fileName = LocalFile.MapPath(file);
            }

            var installer = new PackageInstaller(fileName);

            installer.Install();

            return(string.Empty);
        }
コード例 #8
0
ファイル: Installer.cs プロジェクト: gvhung/thegioicuaban.com
 private void InstallPackages()
 {
     for (int index = 0; index <= Packages.Count - 1; index++)
     {
         PackageInstaller installer = Packages.Values[index];
         if (installer.Package.IsValid)
         {
             InstallerInfo.Log.AddInfo(Util.INSTALL_Start + " - " + installer.Package.Name);
             installer.Install();
             if (InstallerInfo.Log.Valid)
             {
                 InstallerInfo.Log.AddInfo(Util.INSTALL_Success + " - " + installer.Package.Name);
             }
             else
             {
                 InstallerInfo.Log.AddInfo(Util.INSTALL_Failed + " - " + installer.Package.Name);
             }
         }
         else
         {
             InstallerInfo.Log.AddFailure(Util.INSTALL_Aborted + " - " + installer.Package.Name);
         }
     }
 }
コード例 #9
0
        /// <summary>
        ///     Executes the bazooka cli program based on the parameters passed
        /// </summary>
        /// <param name="args">Arguments to Bazooka</param>
        static void Main(string[] args)
        {
            string invokedVerb         = "";
            object invokedVerbInstance = null;

            var options = new Options();
            var result  = CommandLine.Parser.Default.ParseArgumentsStrict(args, options,
                                                                          (verb, subOptions) =>
            {
                // if parsing succeeds the verb name and correct instance
                // will be passed to onVerbCommand delegate (string,object)
                invokedVerb         = verb;
                invokedVerbInstance = subOptions;
            });

            switch (invokedVerb)
            {
            case "install":
            {
                var packageInfo = new PackageInfo();

                packageInfo.Configuration         = ((InstallOptions)invokedVerbInstance).Configuration;
                packageInfo.InstallationDirectory = ((InstallOptions)invokedVerbInstance).Directory;
                packageInfo.Name    = ((InstallOptions)invokedVerbInstance).Application;
                packageInfo.Version = ((InstallOptions)invokedVerbInstance).Version;

                var PackageInstaller = new PackageInstaller();
                PackageInstaller.Logger = new ConsoleLogger();
                var additionalParams = ((InstallOptions)invokedVerbInstance).AdditionalParameters;
                var paramDictionary  = new Dictionary <string, string>();

                if (additionalParams.Length > 0)
                {
                    paramDictionary = additionalParams.ToDictionary(x => x.Substring(0, x.IndexOf("=") - 1), x => x.Substring(x.IndexOf("=") + 1));
                }

                PackageInstaller.Install(packageInfo, new string[] { ((InstallOptions)invokedVerbInstance).Repository }, paramDictionary);
            }
            break;

            case "blast":
            {
                //serach directory for packages
                var files = Directory.GetFiles(((BlastOptions)invokedVerbInstance).Directory, "*.nupkg");

                if (files.Count() == 0)
                {
                    Console.WriteLine("No package found");
                    break;
                }


                if (files.Count() > 1)
                {
                    Console.WriteLine("More than one package present");
                    break;
                }

                var packageInfo = new PackageInfo();
                var filename    = PackageHelpers.ExtractPackageName(files.First()).Trim();
                packageInfo.Name    = filename.Substring(filename.LastIndexOf("\\") + 1);
                packageInfo.Version = PackageHelpers.ExtractPackageVersion(files.First());
                packageInfo.InstallationDirectory = ((BlastOptions)invokedVerbInstance).Directory;
                packageInfo.Configuration         = "";

                var packageRemover = new PackageRemover();
                packageRemover.Logger = new ConsoleLogger();

                var additionalParams = ((BlastOptions)invokedVerbInstance).AdditionalParameters;
                var paramDictionary  = new Dictionary <string, string>();

                if (additionalParams.Length > 0)
                {
                    paramDictionary = additionalParams.ToDictionary(x => x.Substring(0, x.IndexOf("=") - 1), x => x.Substring(x.IndexOf("=") + 1));
                }

                packageRemover.Remove(packageInfo, new string[] { ((BlastOptions)invokedVerbInstance).Directory }, paramDictionary, null);
                // if multiples found erro
                //uninstall the remaining one
            }
            break;

            case "update":
            {
                //serach directory for packages
                var files = Directory.GetFiles(((UpdateOptions)invokedVerbInstance).Directory, "*.nupkg");

                if (files.Count() == 0)
                {
                    Console.WriteLine("No package found");
                    break;
                }


                if (files.Count() > 1)
                {
                    Console.WriteLine("More than one package present");
                    break;
                }

                var packageInfo = new PackageInfo();
                var filename    = PackageHelpers.ExtractPackageName(files.First()).Trim();
                packageInfo.Name    = filename.Substring(filename.LastIndexOf("\\") + 1);
                packageInfo.Version = PackageHelpers.ExtractPackageVersion(files.First()).Trim();
                packageInfo.InstallationDirectory = ((UpdateOptions)invokedVerbInstance).Directory;
                packageInfo.Configuration         = ((UpdateOptions)invokedVerbInstance).Configuration;

                var packageRemover = new PackageRemover();
                packageRemover.Logger = new ConsoleLogger();

                var additionalParams = ((UpdateOptions)invokedVerbInstance).AdditionalParameters;
                var paramDictionary  = new Dictionary <string, string>();

                if (additionalParams.Length > 0)
                {
                    paramDictionary = additionalParams.ToDictionary(x => x.Substring(0, x.IndexOf("=") - 1), x => x.Substring(x.IndexOf("=") + 1));
                }

                packageRemover.Remove(packageInfo, new string[] { ((UpdateOptions)invokedVerbInstance).Directory }, paramDictionary, null);

                var packageInfo2 = new PackageInfo();

                packageInfo2.Configuration         = ((UpdateOptions)invokedVerbInstance).Configuration;
                packageInfo2.InstallationDirectory = ((UpdateOptions)invokedVerbInstance).Directory;
                packageInfo2.Name    = ((UpdateOptions)invokedVerbInstance).Application;
                packageInfo2.Version = ((UpdateOptions)invokedVerbInstance).Version;

                var PackageInstaller = new PackageInstaller();
                PackageInstaller.Logger = new ConsoleLogger();
                var additionalParams2 = ((UpdateOptions)invokedVerbInstance).AdditionalParameters;
                var paramDictionary2  = new Dictionary <string, string>();

                if (additionalParams2.Length > 0)
                {
                    paramDictionary2 = additionalParams2.ToDictionary(x => x.Substring(0, x.IndexOf("=") - 1), x => x.Substring(x.IndexOf("=") + 1));
                }

                PackageInstaller.Install(packageInfo2, new string[] { ((UpdateOptions)invokedVerbInstance).Repository }, paramDictionary2);
            }
            break;

            case "uninstall":
            {
                var packageInfo = new PackageInfo();
                packageInfo.Name    = ((UninstallOptions)invokedVerbInstance).Application;
                packageInfo.Version = ((UninstallOptions)invokedVerbInstance).Version;
                packageInfo.InstallationDirectory = ((UninstallOptions)invokedVerbInstance).Directory;
                packageInfo.Configuration         = ((UninstallOptions)invokedVerbInstance).Configuration;

                var packageRemover = new PackageRemover();
                packageRemover.Logger = new ConsoleLogger();

                var additionalParams = ((UninstallOptions)invokedVerbInstance).AdditionalParameters;
                var paramDictionary  = new Dictionary <string, string>();

                if (additionalParams.Length > 0)
                {
                    paramDictionary = additionalParams.ToDictionary(x => x.Substring(0, x.IndexOf("=") - 1), x => x.Substring(x.IndexOf("=") + 1));
                }

                packageRemover.Remove(packageInfo, new string[] { ((UninstallOptions)invokedVerbInstance).Directory }, paramDictionary, null);
            }
            break;
            }
        }