Exemplo n.º 1
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Returns HashCode</returns>
 public override int GetHashCode()
 {
     return(String.Format("{0}|{1}|",
                          PackagePath?.GetHashCode() ?? 0,
                          Source?.GetHashCode() ?? 0
                          ).GetHashCode());
 }
Exemplo n.º 2
0
        PackageIdentity CreatePackageIdentity(string packageId, string packageVersion)
        {
            var version = VersionFactory.CreateSemanticVersion(packageVersion);
            var path    = new PackagePath($"C:\\{packageId}.{packageVersion}.zip");

            return(new PackageIdentity(new PackageId(packageId), version, path));
        }
Exemplo n.º 3
0
        private static PackageInProject MakePackageForV110()
        {
            var path = new PackagePath("c:\\temp", "folder\\src\\project1\\packages.config",
                                       PackageReferenceType.PackagesConfig);

            return(new PackageInProject("foo.bar", "1.1.0", path));
        }
Exemplo n.º 4
0
        public virtual ScormPackageSettings Copy(Int32 idPerson, String ipAddress, String proxyIpAddress, long idItem,
                                                 Guid uniqueId, long idVersion, Guid uniqueIdVersion, RepositoryIdentifier repository, DateTime?validUntil = null, String packagePath = "")
        {
            ScormPackageSettings item = new ScormPackageSettings()
            {
                IdItem = idItem, IdVersion = idVersion, UniqueIdItem = uniqueId, UniqueIdVersion = uniqueIdVersion, Repository = repository
            };

            item.CreateMetaInfo(idPerson, ipAddress, proxyIpAddress);
            item.ActivityCount        = ActivityCount;
            item.CheckScore           = CheckScore;
            item.CheckScormCompletion = CheckScormCompletion;
            item.CheckTime            = CheckTime;
            item.EvaluationType       = EvaluationType;
            item.IsCurrent            = IsCurrent;
            item.IsValid        = IsValid;
            item.MinScore       = MinScore;
            item.MinTime        = MinTime;
            item.UseScoreScaled = UseScoreScaled;

            item.PackageGuid = uniqueIdVersion.ToString();
            item.PackagePath = (String.IsNullOrWhiteSpace(packagePath) ? PackagePath.Replace(UniqueIdVersion.ToString() + "\\", uniqueIdVersion.ToString() + "\\") : packagePath);
            item.ValidUntil  = validUntil;
            return(item);
        }
        private PackageInProject?XmlToPackage(XElement el, PackagePath path)
        {
            var id      = el.Attribute("id")?.Value;
            var version = el.Attribute("version")?.Value;

            return(_packageInProjectReader.Read(id, version, path, null));
        }
Exemplo n.º 6
0
        private static PackageInProject BuildPackageInProject(string packageName)
        {
            var path = new PackagePath("c:\\temp", "folder\\src\\project1\\packages.config",
                                       PackageReferenceType.PackagesConfig);

            return(new PackageInProject(packageName, "1.1.0", path));
        }
        private PackageInProject?XmlToPackage(XNamespace ns, XElement el,
                                              PackagePath path, IEnumerable <string> projectReferences)
        {
            var id      = el.Attribute("Include")?.Value;
            var version = el.Attribute("Version")?.Value ?? el.Element(ns + "Version")?.Value;

            return(_packageInProjectReader.Read(id, version, path, projectReferences));
        }
Exemplo n.º 8
0
        private static PackageInProject MakePackageForV100()
        {
            var path2 = new PackagePath("c:\\temp", "folder\\src\\project2\\packages.config",
                                        PackageReferenceType.PackagesConfig);
            var currentPackage2 = new PackageInProject("foo.bar", "1.0.0", path2);

            return(currentPackage2);
        }
        private static PackageInProject MakePackageInProjectFor(PackageIdentity package)
        {
            var path = new PackagePath(
                Path.GetTempPath(),
                Path.Combine("folder", "src", "project1", "packages.config"),
                PackageReferenceType.PackagesConfig);

            return(new PackageInProject(package.Id, package.Version.ToString(), path));
        }
Exemplo n.º 10
0
        private static PackageInProject MakePackageForV110(PackageIdentity package)
        {
            var path = new PackagePath(
                OsSpecifics.GenerateBaseDirectory(),
                Path.Combine("folder", "src", "project1", "packages.config"),
                PackageReferenceType.PackagesConfig);

            return(new PackageInProject(package.Id, package.Version.ToString(), path));
        }
Exemplo n.º 11
0
        public static PackageInProject MakePackageForV110(PackageVersionRange package)
        {
            var path = new PackagePath(
                OsSpecifics.GenerateBaseDirectory(),
                Path.Combine("folder", "src", "project1", "packages.config"),
                PackageReferenceType.PackagesConfig);

            return(new PackageInProject(package, path));
        }
Exemplo n.º 12
0
        public void ConstructorShouldProduceExpectedParsedPropsWithExtraSlash()
        {
            var sep  = Path.DirectorySeparatorChar;
            var path = new PackagePath(
                BaseDirectory,
                $"{sep}checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);


            Assert.That(path.RelativePath, Is.EqualTo($"checkout1{sep}src{sep}myproj.csproj"));
        }
        /// <summary>
        /// Overrides Object.GetHashCode.
        /// </summary>
        /// <returns>A suitable hash code for this PackagePathTemplateLocation.</returns>
        public override int GetHashCode()
        {
            const int prime  = 397;
            int       result = PackagePath.ToLower().GetHashCode();       // package path must be case-insensitive

            result = (result * prime) ^ PackageID.GetHashCode();          // combine the hashes
            return(result);

            // NOTE: Object.Equals is overridden in the base class, and therefore
            // does not need not be overridden here.
        }
Exemplo n.º 14
0
        public void ConstructorShouldProduceExpectedParsedFileName()
        {
            var sep  = Path.DirectorySeparatorChar;
            var path = new PackagePath(
                $"c:{sep}temp{sep}somefolder",
                $"checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);


            Assert.That(path.Info.Name, Is.EqualTo("myproj.csproj"));
        }
        public void ConstructorShouldProduceExpectedInfoForProjectFile()
        {
            var sep = Path.DirectorySeparatorChar;

            var path = new PackagePath(
                _baseDirectory,
                $"{sep}checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);

            Assert.That(path.Info, Is.Not.Null);
            Assert.That(path.Info.Name, Is.EqualTo("myproj.csproj"));
        }
        public void ConstructorShouldProduceExpectedParsedFullPath()
        {
            var sep  = Path.DirectorySeparatorChar;
            var path = new PackagePath(
                _baseDirectory,
                $"checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);


            Assert.That(path.Info.DirectoryName, Is.EqualTo($"{_baseDirectory}{sep}checkout1{sep}src"));
            Assert.That(path.FullName, Is.EqualTo($"{_baseDirectory}{sep}checkout1{sep}src{sep}myproj.csproj"));
        }
        private PackageInProject?XmlToPackage(XElement el, PackagePath path)
        {
            var id = el.Attribute("Include")?.Value;

            if (id == null)
            {
                id = el.Attribute("Update")?.Value;
            }
            var version = el.Attribute("Version")?.Value;

            return(_packageInProjectReader.Read(id, version, path, null));
        }
Exemplo n.º 18
0
        private async Task DownloadAsync(PackagePath package, DirectoryInfo destFolder)
        {
            var tempFolder = new DirectoryInfo($"{this.packagePath.Options.TempFolder}\\tmp\\{Guid.NewGuid()}");

            // first try version url...
            var registry = new NpmRegistry(client);

            // get tarball url...
            var tarball = await registry.GetTarBallAsync(package.Options.NPMRegistry, package.Package, package.Version);

            try
            {
                using (var stream = await client.GetStreamAsync(tarball))
                {
                    using (var ungzStream = new GZipInputStream(stream))
                    {
                        using (var tar = TarArchive.CreateInputTarArchive(ungzStream))
                        {
                            // tar.ExtractContents(packagePath.TagFolder);

                            tar.ExtractContents(tempFolder.FullName);
                            var parent = destFolder.Parent;
                            if (!parent.Exists)
                            {
                                parent.Create();
                            }

                            var tmp = tempFolder.GetDirectories()[0];

                            tmp.MoveTo(destFolder.FullName);

                            // var tmp = tempFolder.GetDirectories()[0];

                            // Directory.Move(tmp.FullName, tagFolder.FullName);
                        }
                    }
                }
            }
            catch
            {
                if (destFolder.Exists)
                {
                    destFolder.Delete(true);
                }
                throw;
            } finally
            {
                if (tempFolder.Exists)
                {
                    tempFolder.Delete(true);
                }
            }
        }
Exemplo n.º 19
0
        public void ConstructorShouldProduceExpectedSimplePropsForPackagesConfigFile()
        {
            var sep  = Path.DirectorySeparatorChar;
            var path = new PackagePath(
                $"c:{sep}temp{sep}somefolder",
                $"{sep}checkout1{sep}src{sep}packages.config",
                PackageReferenceType.PackagesConfig);

            Assert.That(path.BaseDirectory, Is.EqualTo($"c:{sep}temp{sep}somefolder"));
            Assert.That(path.RelativePath, Is.EqualTo($"checkout1{sep}src{sep}packages.config"));
            Assert.That(path.PackageReferenceType, Is.EqualTo(PackageReferenceType.PackagesConfig));
        }
Exemplo n.º 20
0
        public void ConstructorShouldProduceExpectedParsedFullPathWithExtraSlash()
        {
            var sep  = Path.DirectorySeparatorChar;
            var path = new PackagePath(
                $"c:{sep}temp{sep}somefolder",
                $"{sep}checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);


            Assert.That(path.BaseDirectory, Is.EqualTo($"c:{sep}temp{sep}somefolder"));
            Assert.That(path.Info.DirectoryName, Is.EqualTo($"c:{sep}temp{sep}somefolder{sep}checkout1{sep}src"));
            Assert.That(path.FullName, Is.EqualTo($"c:{sep}temp{sep}somefolder{sep}checkout1{sep}src{sep}myproj.csproj"));
        }
        public void ConstructorShouldProduceExpectedSimplePropsForProjectFile()
        {
            var sep = Path.DirectorySeparatorChar;

            var path = new PackagePath(
                _baseDirectory,
                $"{sep}checkout1{sep}src{sep}myproj.csproj",
                PackageReferenceType.ProjectFile);

            Assert.That(path.BaseDirectory, Is.EqualTo(_baseDirectory));
            Assert.That(path.RelativePath, Is.EqualTo($"checkout1{sep}src{sep}myproj.csproj"));
            Assert.That(path.PackageReferenceType, Is.EqualTo(PackageReferenceType.ProjectFile));
        }
Exemplo n.º 22
0
        private void Rename(string newName)
        {
            string error;

            if (!IsValidName(newName, out error))
            {
                ServiceProvider.Get <IDialogService>().BlockingMessageBox(string.Format(Tr._p("Message", "This package couldn't be renamed. {0}"), error), MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            var newPath = UFile.Combine(PackagePath.GetFullDirectory(), newName + PackagePath.GetFileExtension());

            Rename(newPath);
        }
Exemplo n.º 23
0
        public static PackageUpdateSet MakePackageUpdateSet(string packageName)
        {
            var fooPackage = new PackageIdentity(packageName, new NuGetVersion("1.2.3"));
            var latest     = new PackageSearchMedatadata(fooPackage, new PackageSource("http://none"), null,
                                                         Enumerable.Empty <PackageDependency>());
            var packages = new PackageLookupResult(VersionChange.Major, latest, null, null);

            var path = new PackagePath("c:\\foo", "bar", PackageReferenceType.ProjectFile);
            var pip  = new PackageInProject(fooPackage, path, null);

            return(new PackageUpdateSet(packages, new List <PackageInProject> {
                pip
            }));
        }
        private async Task DownloadAsync(PackagePath package, string destination)
        {
            var tempFolder = new DirectoryInfo($"{package.Options.TempFolder}\\tmp\\{Guid.NewGuid()}");

            var tagFolder = new DirectoryInfo(destination);

            try
            {
                using (var stream = await client.GetStreamAsync(package.PrivateNpmUrl))
                {
                    using (var ungzStream = new GZipInputStream(stream))
                    {
                        using (var tar = TarArchive.CreateInputTarArchive(ungzStream))
                        {
                            // tar.ExtractContents(packagePath.TagFolder);

                            tar.ExtractContents(tempFolder.FullName);
                            var parent = tagFolder.Parent;
                            if (!parent.Exists)
                            {
                                parent.Create();
                            }

                            var tmp = tempFolder.GetDirectories()[0];

                            Directory.Move(tmp.FullName, tagFolder.FullName);
                        }
                    }
                }

                if (tempFolder.Exists)
                {
                    tempFolder.Delete(true);
                }
            }
            catch
            {
                if (tagFolder.Exists)
                {
                    tagFolder.Delete(true);
                }
                throw;
            } finally
            {
                //if (tempFolder.Exists)
                //{
                //    tempFolder.Delete(true);
                //}
            }
        }
        private async Task InstallAsync(PackagePath package, string destination)
        {
            await DownloadAsync(package, destination);

            // read config..
            var packageConfig = await File.ReadAllTextAsync(destination + "\\package.json");

            var config = JObject.Parse(packageConfig);

            if (!config.ContainsKey("dependencies"))
            {
                return;
            }

            var dep = config["dependencies"] as JObject;

            if (dep == null)
            {
                return;
            }
            List <PackagePath> dependencies = new List <PackagePath>();

            foreach (var key in dep.Properties())
            {
                string value = key.Value?.ToString();
                if (value == null)
                {
                    continue;
                }
                value = value.TrimStart('^');
                if (!Char.IsNumber(value[0]))
                {
                    continue;
                }
                string pn = $"{key.Name}@{value}";
                var    cp = new PackagePath(package.Options, pn.ParseNPMPath(), true);

                if (queuedPackages.Contains(cp.Package))
                {
                    continue;
                }
                queuedPackages.Add(cp.Package);
                dependencies.Add(cp);
            }

            await Task.WhenAll(dependencies.Select((p) =>
                                                   InstallAsync(p, $"{packagePath.TagFolder}\\node_modules\\{p.Package}")
                                                   ));
        }
Exemplo n.º 26
0
        private static PackageUpdateSet UpdateSet(PackageReferenceType refType)
        {
            var fooPackage = new PackageIdentity("foo", new NuGetVersion(1, 2, 3));
            var path       = new PackagePath("c:\\foo", "bar", refType);
            var packages   = new[]
            {
                new PackageInProject(fooPackage, path, null)
            };

            var latest = new PackageSearchMedatadata(fooPackage, new PackageSource(NuGetConstants.V3FeedUrl), null, null);

            var updates = new PackageLookupResult(VersionChange.Major, latest, null, null);

            return(new PackageUpdateSet(updates, packages));
        }
Exemplo n.º 27
0
        private static PackageUpdateSet UpdateSet()
        {
            var fooPackage = new PackageIdentity("foo", new NuGetVersion(1, 2, 3));
            var path       = new PackagePath("c:\\foo", "bar", PackageReferenceType.PackagesConfig);
            var packages   = new[]
            {
                new PackageInProject(fooPackage, path, null)
            };

            var publishedDate = new DateTimeOffset(2018, 2, 19, 11, 12, 7, TimeSpan.Zero);
            var latest        = new PackageSearchMedatadata(fooPackage, new PackageSource("https://somewhere"), publishedDate, null);

            var updates = new PackageLookupResult(VersionChange.Major, latest, null, null);

            return(new PackageUpdateSet(updates, packages));
        }
        private IReadOnlyCollection <PackageInProject> Read(XDocument xml, PackagePath path)
        {
            var packagesNode = xml.Element("Project")?.Elements("ItemGroup");

            if (packagesNode == null)
            {
                return(Array.Empty <PackageInProject>());
            }

            var packageNodeList = packagesNode.Elements("PackageReference");

            var packageList = packageNodeList
                              .Select(el => XmlToPackage(el, path))
                              .Where(p => p != null)
                              .ToList();

            return(packageList !);
        }
Exemplo n.º 29
0
        private IReadOnlyCollection <PackageInProject> Read(XDocument xml, PackagePath path)
        {
            var packagesNode = xml.Element("package")?.Element("metadata")?.Element("dependencies");

            if (packagesNode == null)
            {
                return(Array.Empty <PackageInProject>());
            }

            var packageNodeList = packagesNode.Elements()
                                  .Where(x => x.Name == "dependency");

            var packages = packageNodeList
                           .Select(el => XmlToPackage(el, path))
                           .Where(p => p != null)
                           .ToList();

            return(packages !);
        }
 public RegisterPackageUseCommand(ILog log, IManagePackageCache journal, ICalamariFileSystem fileSystem)
 {
     this.log        = log;
     this.journal    = journal;
     this.fileSystem = fileSystem;
     Options.Add("packageId=", "Package ID of the used package", v => packageId = new PackageId(v));
     Options.Add("packageVersionFormat=", $"[Optional] Format of version. Options {string.Join(", ", Enum.GetNames(typeof(VersionFormat)))}. Defaults to `{VersionFormat.Semver}`.",
                 v =>
     {
         if (!Enum.TryParse(v, out VersionFormat format))
         {
             throw new CommandException($"The provided version format `{format}` is not recognised.");
         }
         versionFormat = format;
     });
     Options.Add("packageVersion=", "Package version of the used package", v => packageVersion = VersionFactory.TryCreateVersion(v, versionFormat));
     Options.Add("packagePath=", "Path to the package", v => packagePath            = new PackagePath(v));
     Options.Add("taskId=", "Id of the task that is using the package", v => taskId = new ServerTaskId(v));
 }