Beispiel #1
0
        public virtual void CreatePackage(CreatePackageInput input, IFileSystem fileSystem)
        {
            var manifest = fileSystem.LoadPackageManifestFrom(input.PackageFolder);

            var creator = new PackageCreator(fileSystem, new ZipFileService(), new PackageLogger(), new AssemblyFileFinder(new FileSystem()));
            creator.CreatePackage(input, manifest);
        }
Beispiel #2
0
        public virtual void CreatePackage(CreateBottleInput input, IFileSystem fileSystem)
        {
            var fileName = FileSystem.Combine(input.PackageFolder, input.ManifestFileNameFlag ?? PackageManifest.FILE);
            var manifest = fileSystem.LoadFromFile <PackageManifest>(fileName);

            var creator = new PackageCreator(fileSystem, new ZipFileService(fileSystem), new PackageLogger(), new AssemblyFileFinder(fileSystem));

            creator.CreatePackage(input, manifest);
        }
Beispiel #3
0
        public virtual void CreatePackage(CreatePackageInput input, IFileSystem fileSystem)
        {
            var fileName = FileSystem.Combine(input.PackageFolder, input.ManifestFileNameFlag ?? PackageManifest.FILE);
            var reader   = new PackageManifestXmlReader();
            var manifest = reader.ReadFrom(fileName);

            var creator = new PackageCreator(fileSystem, new ZipFileService(fileSystem), new PackageLogger(), new AssemblyFileFinder(new FileSystem()));

            creator.CreatePackage(input, manifest);
        }
        private void SetupAddMenu()
        {
            AddMenu.menu.AppendAction("Add package from disk...", a =>
            {
                var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" });
                if (!string.IsNullOrEmpty(path) && !Package.PackageOperationInProgress)
                {
                    Package.AddFromLocalDisk(path);
                }
            }, a => DropdownMenuAction.Status.Normal);

            AddMenu.menu.AppendAction("Add package from git URL...", a =>
            {
                var addFromGitUrl            = new PackagesAction("Add");
                addFromGitUrl.actionClicked += url =>
                {
                    addFromGitUrl.Hide();
                    if (!Package.PackageOperationInProgress)
                    {
                        Package.AddFromUrl(url);
                    }
                };

                parent.Add(addFromGitUrl);
                addFromGitUrl.Show();
            }, a => DropdownMenuAction.Status.Normal);

            AddMenu.menu.AppendSeparator("");

            AddMenu.menu.AppendAction("Create Package...", a =>
            {
                var defaultName              = PackageCreator.GenerateUniquePackageDisplayName("New Package");
                var createPackage            = new PackagesAction("Create", defaultName);
                createPackage.actionClicked += displayName =>
                {
                    createPackage.Hide();
                    var packagePath = PackageCreator.CreatePackage("Packages/" + displayName);
                    AssetDatabase.Refresh();
                    EditorApplication.delayCall += () =>
                    {
                        var path = Path.Combine(packagePath, "package.json");
                        var o    = AssetDatabase.LoadMainAssetAtPath(path);
                        if (o != null)
                        {
                            UnityEditor.Selection.activeObject = o;
                        }

                        PackageManagerWindow.SelectPackageAndFilter(displayName, PackageFilter.InDevelopment, true);
                    };
                };

                parent.Add(createPackage);
                createPackage.Show();
            }, a => DropdownMenuAction.Status.Normal);
        }
Beispiel #5
0
        public IEnumerator TestCreatePackage()
        {
            var path = PackageCreator.CreatePackage("Packages/Test Package");

            m_FoldersToDelete.Add(path);

            // Wait for asset db refresh
            yield return(null);

            Assert.AreEqual("Packages/com.undefined.testpackage", path);
            Assert.IsTrue(Directory.Exists(path));
        }
Beispiel #6
0
        /*
         *
         * [Fact]
         * public void RemovePackage_DeletesPackageDirectory_IfItExists()
         * {
         *  // Arrange
         *  var fileSystem = new MockFileSystem();
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0-beta2", "Foo.nuspec"), "Nuspec contents");
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0-beta2", "Foo.1.0.0-beta2.nupkg.sha512"), "hash contents");
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0-beta2", "tools", "net45", "Foo.targets"), "Foo.targets contents");
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0-beta4", "Foo.nuspec"), "1.0.0-beta4 Nuspec contents");
         *
         *  var repository = new ExpandedPackageRepository(fileSystem);
         *  var package = PackageUtility.CreatePackage("Foo", "1.0-beta2");
         *
         *  // Act
         *  repository.RemovePackage(package);
         *
         *  // Assert
         *  var deletedItems = Assert.Single(fileSystem.Deleted);
         *  Assert.Contains(Path.Combine("Foo", "1.0.0-beta2"), deletedItems);
         *  Assert.True(fileSystem.FileExists(Path.Combine("Foo", "1.0.0-beta4", "Foo.nuspec")));
         * }
         *
         * [Fact]
         * public void RemovePackage_Succeeds_IfPackageDoesNotExist()
         * {
         *  // Arrange
         *  var fileSystem = new MockFileSystem();
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0", "Foo.nuspec"), "Nuspec contents");
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0", "tools", "net45", "Foo.targets"), "Foo.targets contents");
         *  fileSystem.AddFile(Path.Combine("Foo", "1.0.0-beta4", "Foo.nupkg"), "1.0.0-beta4 Nuspec contents");
         *
         *  var repository = new ExpandedPackageRepository(fileSystem);
         *  var package = PackageUtility.CreatePackage("Foo", "1.0.0-beta4");
         *
         *  // Act
         *  repository.RemovePackage(package);
         *
         *  // Assert
         *  Assert.Empty(fileSystem.Deleted);
         * }
         *
         */

        private LocalPackageInfo CreateMyPackage()
        {
            return(PackageCreator.CreatePackage("MyPackage", "1.0.0-beta2", tmpDir.Path, packageBuilder =>
            {
                packageBuilder.Authors.Add("test");
                packageBuilder.Files.Add(
                    CreateMockedPackageFile(@"content\net40\App_Code", "PreapplicationStartCode.cs", content: "Preapplication content").Object);
                packageBuilder.Files.Add(
                    CreateMockedPackageFile(@"tools\net40", "package.targets", "package.targets content").Object);
                packageBuilder.Files.Add(
                    CreateMockedPackageFile(@"lib\net40", "MyPackage.dll", "lib contents").Object);
            }));
        }
        public override void ExecuteCommand(AppSessionTry session, StringRequestInfo requestInfo)
        {
            //判断是否可以登录成功,如果登录失败,断开连接
            if (IsLogin(requestInfo.Body))
            {
                session.Send(PackageCreator.CreatePackage("Comm1000", "{\"result\":\"success\"}"));
            }
            else
            {
                session.Close(CloseReason.ServerShutdown);
            }

            //throw new NotImplementedException();
        }
Beispiel #8
0
 public void TestCreatePackage_WithInvalidPath_ThrowsArgumentException(string path)
 {
     Assert.Catch <ArgumentException>(() => PackageCreator.CreatePackage(path));
 }
        private void SetupAddMenu()
        {
            addMenu.menu.AppendAction("Add package from disk...", a =>
            {
                var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" });
                if (Path.GetFileName(path) != "package.json")
                {
                    Debug.Log("Please select a valid package.json file in a package folder.");
                    return;
                }
                if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress)
                {
                    PackageDatabase.instance.InstallFromPath(Path.GetDirectoryName(path));
                    PackageManagerWindowAnalytics.SendEvent("addFromDisk");
                }
            }, a => DropdownMenuAction.Status.Normal);

            addMenu.menu.AppendAction("Add package from tarball...", a =>
            {
                var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "Package tarball", "tgz" });
                if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress)
                {
                    PackageDatabase.instance.InstallFromPath(path);
                    PackageManagerWindowAnalytics.SendEvent("addFromTarball");
                }
            }, a => DropdownMenuAction.Status.Normal);

            addMenu.menu.AppendAction("Add package from git URL...", a =>
            {
                var addFromGitUrl            = new PackagesAction("Add");
                addFromGitUrl.actionClicked += url =>
                {
                    addFromGitUrl.Hide();
                    if (!PackageDatabase.instance.isInstallOrUninstallInProgress)
                    {
                        PackageDatabase.instance.InstallFromUrl(url);
                        PackageManagerWindowAnalytics.SendEvent("addFromGitUrl");
                    }
                };

                parent.Add(addFromGitUrl);
                addFromGitUrl.Show();
            }, a => DropdownMenuAction.Status.Normal);

            addMenu.menu.AppendSeparator("");

            addMenu.menu.AppendAction("Create Package...", a =>
            {
                var defaultName              = PackageCreator.GenerateUniquePackageDisplayName("New Package");
                var createPackage            = new PackagesAction("Create", defaultName);
                createPackage.actionClicked += displayName =>
                {
                    createPackage.Hide();
                    var packagePath = PackageCreator.CreatePackage("Packages/" + displayName);
                    PackageManagerWindowAnalytics.SendEvent("createPackage");
                    AssetDatabase.Refresh();
                    EditorApplication.delayCall += () =>
                    {
                        var path = Path.Combine(packagePath, "package.json");
                        var o    = AssetDatabase.LoadMainAssetAtPath(path);
                        if (o != null)
                        {
                            UnityEditor.Selection.activeObject = o;
                        }

                        PackageManagerWindow.SelectPackageAndFilter(displayName, PackageFilterTab.InDevelopment, true);
                    };
                };

                parent.Add(createPackage);
                createPackage.Show();
            }, a => DropdownMenuAction.Status.Normal);

            PackageManagerExtensions.ExtensionCallback(() =>
            {
                foreach (var extension in PackageManagerExtensions.MenuExtensions)
                {
                    extension.OnAddMenuCreate(addMenu.menu);
                }
            });
        }
Beispiel #10
0
 public void Login()
 {
     client.Send(PackageCreator.CreatePackage("Comm1000",
                                              "{\"username\":\"xin\",\"password\":\"7654321\"}"));
 }
        /// <summary>
        ///     Processes the desired command with the arguments specified in the command line arguments from Main().
        /// </summary>
        /// <param name="args">
        ///     The optional command line arguments, used to override the arguments with which the application was started.
        /// </param>
        public static void Process(string args = "")
        {
            if (args != string.Empty)
            {
                Arguments.Populate(args);
            }

            string command = string.Empty;

            try
            {
                if (Operands.Count > 1)
                {
                    command = Operands[1].ToLower();
                }

                if (command == "manifest")
                {
                    ManifestGenerator generator = new ManifestGenerator();
                    generator.Updated += Update;

                    PackageManifest manifest = generator.GenerateManifest(Directory, HashFiles, ManifestFile);

                    if (string.IsNullOrEmpty(ManifestFile) && manifest != default(PackageManifest))
                    {
                        Console.WriteLine(manifest.ToJson());
                    }
                }
                else if (command == "extract-manifest")
                {
                    ManifestExtractor extractor = new ManifestExtractor();
                    extractor.Updated += Update;

                    PackageManifest manifest = extractor.ExtractManifest(PackageFile, ManifestFile);

                    if (string.IsNullOrEmpty(ManifestFile) && manifest != default(PackageManifest))
                    {
                        Console.WriteLine(manifest.ToJson());
                    }
                }
                else if (command == "package")
                {
                    PackageCreator creator = new PackageCreator();
                    creator.Updated += Update;

                    string privateKey = string.Empty;

                    if (!string.IsNullOrEmpty(PrivateKeyFile))
                    {
                        privateKey = File.ReadAllText(PrivateKeyFile);
                    }

                    creator.CreatePackage(Directory, ManifestFile, PackageFile, SignPackage, privateKey, Passphrase, KeybaseUsername);
                }
                else if (command == "extract-package")
                {
                    PackageExtractor extractor = new PackageExtractor();
                    extractor.Updated += Update;

                    string publicKey = string.Empty;

                    if (!string.IsNullOrEmpty(PublicKeyFile))
                    {
                        publicKey = File.ReadAllText(PublicKeyFile);
                    }

                    extractor.ExtractPackage(PackageFile, Directory, publicKey, Overwrite, SkipVerification);
                }
                else if (command == "trust")
                {
                    PackageTruster truster = new PackageTruster();
                    truster.Updated += Update;
                    truster.TrustPackage(PackageFile, File.ReadAllText(PrivateKeyFile), Passphrase);
                }
                else if (command == "verify")
                {
                    PackageVerifier verifier = new PackageVerifier();
                    verifier.Updated += Update;

                    string publicKey = string.Empty;

                    if (!string.IsNullOrEmpty(PublicKeyFile))
                    {
                        publicKey = File.ReadAllText(PublicKeyFile);
                    }

                    verifier.VerifyPackage(PackageFile, publicKey);
                }
                else
                {
                    HelpPrinter.PrintHelp(Operands.Count > 2 ? Operands[2] : default(string));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }