示例#1
0
 public PackageDownloader(
     DeploymentConfiguration deploymentConfiguration,
     ILogProvider logProvider,
     PackageDownloaderOptions options)
 {
     _deploymentConfiguration = deploymentConfiguration;
     _logProvider             = logProvider;
     _logger              = logProvider.GetLogger("Packages");
     _performanceLogger   = logProvider.GetLogger("Performance." + GetType().Name);
     _options             = options;
     _filesUtility        = new FilesUtility(logProvider);
     _packagesCacheFolder = Path.Combine(Paths.RhetosServerRootPath, "PackagesCache");
 }
示例#2
0
 public PackageDownloader(
     DeploymentConfiguration deploymentConfiguration,
     ILogProvider logProvider,
     PackageDownloaderOptions options)
 {
     _deploymentConfiguration = deploymentConfiguration;
     _logProvider             = logProvider;
     _logger            = logProvider.GetLogger(GetType().Name);
     _packagesLogger    = logProvider.GetLogger("Packages");
     _performanceLogger = logProvider.GetLogger("Performance");
     _options           = options;
     _filesUtility      = new FilesUtility(logProvider);
 }
示例#3
0
        /// <summary>
        /// Available location options:
        /// 1. Online nuget gallery ("http://..." or "https://...").
        /// 2. Local folder or network folder with nuget packages.
        /// 3. Package project's source folder (unpacked, useful for package development).
        /// </summary>
        public PackageSource(string location)
        {
            if (string.IsNullOrEmpty(location))
            {
                throw new UserException(string.Format(
                                            "Invalid configuration file. Provided location is empty. Check the configuration files {1} and {2}.",
                                            DeploymentConfiguration.SourcesConfigurationFileName,
                                            DeploymentConfiguration.PackagesConfigurationFileName));
            }

            ProvidedLocation = location;

            if (System.Uri.IsWellFormedUriString(location, UriKind.Absolute))
            {
                Uri = location;
            }
            else
            {
                Path = System.IO.Path.Combine(DeploymentConfiguration.GetConfigurationFolder(), location);
                string pathError = null;
                try
                {
                    Path = System.IO.Path.GetFullPath(Path);
                }
                catch (Exception ex)
                {
                    pathError = ex.Message;
                }

                if (pathError != null || (!Directory.Exists(Path) && !File.Exists(Path)))
                {
                    throw new UserException(string.Format(
                                                "Invalid configuration file. Provided location '{0}' is not a valid URI or an existing path. Check the configuration files {1} and {2}.",
                                                location,
                                                DeploymentConfiguration.SourcesConfigurationFileName,
                                                DeploymentConfiguration.PackagesConfigurationFileName));
                }
            }
        }
示例#4
0
        private static void DownloadPackages(ILogger logger, Arguments arguments)
        {
            var obsoleteFolders = new string[] { Path.Combine(Paths.RhetosServerRootPath, "DslScripts"), Path.Combine(Paths.RhetosServerRootPath, "DataMigration") };
            var obsoleteFolder = obsoleteFolders.FirstOrDefault(folder => Directory.Exists(folder));
            if (obsoleteFolder != null)
                throw new UserException("Backup all Rhetos server folders and delete obsolete folder '" + obsoleteFolder + "'. It is no longer used.");

            if (!arguments.DeployDatabaseOnly)
            {
                logger.Trace("Getting packages.");
                var config = new DeploymentConfiguration(DeploymentUtility.InitializationLogProvider);
                var packageDownloaderOptions = new PackageDownloaderOptions { IgnorePackageDependencies = arguments.IgnorePackageDependencies };
                var packageDownloader = new PackageDownloader(config, DeploymentUtility.InitializationLogProvider, packageDownloaderOptions);
                var packages = packageDownloader.GetPackages();

                InstalledPackages.Save(packages);
            }
            else
                logger.Info("Skipped download packages (DeployDatabaseOnly).");
        }