示例#1
0
        public string GetLatestVersion(bool ignorePrerelease)
        {
            IEnumerable <string> allVersions = null;

            if (DirectoryProxy.Exists(NugetSource))
            {
                var paketPrefix = "paket.";
                allVersions = DirectoryProxy.
                              EnumerateFiles(NugetSource, "paket.*.nupkg", SearchOption.TopDirectoryOnly).
                              Select(x => Path.GetFileNameWithoutExtension(x)).
                              // If the specified character isn't a digit, then the file
                              // likely contains the bootstrapper or paket.core
                              Where(x => x.Length > paketPrefix.Length && Char.IsDigit(x[paketPrefix.Length])).
                              Select(x => x.Substring(paketPrefix.Length));
            }
            else
            {
                var apiHelper         = new NugetApiHelper(PaketNugetPackageName, NugetSource);
                var versionRequestUrl = apiHelper.GetAllPackageVersions(!ignorePrerelease);
                var versions          = WebRequestProxy.DownloadString(versionRequestUrl);
                allVersions = versions.
                              Trim('[', ']').
                              Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).
                              Select(x => x.Trim('"'));
            }
            var latestVersion = allVersions.
                                Select(SemVer.Create).
                                Where(x => !ignorePrerelease || (x.PreRelease == null)).
                                OrderBy(x => x).
                                LastOrDefault(x => !String.IsNullOrWhiteSpace(x.Original));

            return(latestVersion != null ? latestVersion.Original : String.Empty);
        }
示例#2
0
        private string GetLatestStable()
        {
            var data    = WebRequestProxy.DownloadString(Constants.PaketReleasesLatestUrl);
            var title   = data.Substring(data.IndexOf("<title>") + 7, (data.IndexOf("</title>") + 8) - (data.IndexOf("<title>") + 7)); // grabs everything in the <title> tag
            var version = title.Split(' ')[1];                                                                                         // Release, 1.34.0, etc, etc, etc <-- the release number is the second part fo this split string

            return(version);
        }
示例#3
0
        protected override PaketHashFile DownloadHashFileCore(string latestVersion)
        {
            var url = string.Format(Constants.PaketCheckSumDownloadUrlTemplate, latestVersion);

            ConsoleImpl.WriteInfo("Starting download from {0}", url);

            var content = WebRequestProxy.DownloadString(url);

            return(PaketHashFile.FromString(content));
        }
示例#4
0
        private string GetLatestPrerelease()
        {
            var data = WebRequestProxy.DownloadString(Constants.PaketReleasesUrl);

            return(GetVersions(data).FirstOrDefault(s => s.Contains("-")));
        }