コード例 #1
0
 private void ProcessNuspecContent(NuspecReader reader)
 {
     if (Specification.Id == null)
     {
         Update(reader.GetId(), (id) => Specification.Id = id);
     }
     UpdateUrl(reader.GetLicenseUrl(), url => Specification.LicenseUrl    = url, DEFAULT_LICENCE_URL);
     UpdateUrl(reader.GetProjectUrl(), url => Specification.ProjectUrl    = url, DEFAULT_PROJECT_URL);
     UpdateUrl(reader.GetIconUrl(), url => Specification.IconUrl          = url, DEFAULT_ICON_URL);
     UpdateList(reader.GetAuthors(), list => Specification.Authors        = list);
     UpdateList(reader.GetOwners(), list => Specification.Owners          = list);
     Update(reader.GetReleaseNotes(), notes => Specification.ReleaseNotes = notes, DEFAULT_RELEASE_NOTES);
     Update(reader.GetCopyright(), copyright => Specification.Copyright   = copyright);
     UpdateList(reader.GetTags(), list => Specification.Tags           = list, ' ', DEFAULT_TAGS);
     Update(reader.GetDescription(), desc => Specification.Description = desc);
 }
コード例 #2
0
        public ServerPackage(NuspecReader package, PackageDerivedData packageDerivedData)
        {
            Id         = package.GetId();
            Version    = package.GetVersion();
            Title      = package.GetTitle();
            Authors    = package.GetAuthors();
            Owners     = package.GetOwners();
            IconUrl    = package.GetIconUrl();
            LicenseUrl = package.GetLicenseUrl();
            ProjectUrl = package.GetProjectUrl();
            RequireLicenseAcceptance = package.GetRequireLicenseAcceptance();
            DevelopmentDependency    = package.GetDevelopmentDependency();
            Description             = package.GetDescription();
            Summary                 = package.GetSummary();
            ReleaseNotes            = package.GetReleaseNotes();
            Language                = package.GetLanguage();
            Tags                    = package.GetTags();
            Copyright               = package.GetCopyright();
            MinClientVersion        = package.GetMinClientVersion();
            ReportAbuseUrl          = null;
            DownloadCount           = 0;
            SemVer1IsAbsoluteLatest = false;
            SemVer1IsLatest         = false;
            SemVer2IsAbsoluteLatest = false;
            SemVer2IsLatest         = false;
            //FIXME is this OK?
            Listed = true;

            IsSemVer2 = IsPackageSemVer2(package);

            _dependencySets = package.GetDependencyGroups().ToList();
            Dependencies    = _dependencySets.DependencySetsAsString();

            _supportedFrameworks = package.GetFrameworkReferenceGroups().Select(f => f.TargetFramework).ToList();
            SupportedFrameworks  = string.Join("|", _supportedFrameworks.Select(f => f.GetFrameworkString()));

            PackageSize          = packageDerivedData.PackageSize;
            PackageHash          = packageDerivedData.PackageHash;
            PackageHashAlgorithm = packageDerivedData.PackageHashAlgorithm;
            LastUpdated          = packageDerivedData.LastUpdated;
            Created  = packageDerivedData.Created;
            Path     = packageDerivedData.Path;
            FullPath = packageDerivedData.FullPath;
        }
コード例 #3
0
        private static async Task WritePackageNotice(StreamWriter writer, NuspecReader package)
        {
            await writer.WriteAsync("License notice for ").ConfigureAwait(false);

            await writer.WriteAsync(package.GetId()).ConfigureAwait(false);

            await writer.WriteAsync(" (v").ConfigureAwait(false);

            await writer.WriteAsync(package.GetVersion().ToFullString()).ConfigureAwait(false);

            await writer.WriteLineAsync(")").ConfigureAwait(false);

            await writer.WriteLineAsync("------------------------------------").ConfigureAwait(false);

            var repository = package.GetRepositoryMetadata();

            if (!string.IsNullOrEmpty(repository?.Url))
            {
                await writer.WriteLineAsync().ConfigureAwait(false);

                await writer.WriteAsync(repository.Url).ConfigureAwait(false);

                if (!string.IsNullOrEmpty(repository.Commit))
                {
                    await writer.WriteAsync(" at ").ConfigureAwait(false);

                    await writer.WriteAsync(repository.Commit).ConfigureAwait(false);
                }

                await writer.WriteLineAsync().ConfigureAwait(false);
            }

            string projectUrl = package.GetProjectUrl();

            if (projectUrl != repository?.Url)
            {
                await WriteIfNotEmpty(writer, string.Empty, projectUrl).ConfigureAwait(false);
            }

            string copyright       = package.GetCopyright();
            string copyrightPrefix = string.Empty;

            if (copyright?.Length > 0 && copyright[0] == '©')
            {
                copyrightPrefix = "Copyright ";
            }

            await WriteIfNotEmpty(writer, copyrightPrefix, copyright).ConfigureAwait(false);

            var license = package.GetLicenseMetadata();

            if (license != null)
            {
                string licenseExpression = license.LicenseExpression?.ToString();
                await WriteIfNotEmpty(writer, "Licensed under ", licenseExpression).ConfigureAwait(false);
                await WriteIfNotEmpty(writer, "Available at ", license.LicenseUrl?.AbsoluteUri).ConfigureAwait(false);

                if (license.License != licenseExpression)
                {
                    await WriteIfNotEmpty(writer, string.Empty, license.License).ConfigureAwait(false);
                }
            }
            else
            {
                await WriteIfNotEmpty(writer, "License available at ", package.GetLicenseUrl()).ConfigureAwait(false);
            }

            await writer.WriteLineAsync().ConfigureAwait(false);

            await writer.WriteLineAsync().ConfigureAwait(false);
        }