Exemplo n.º 1
0
        /// <summary>
        /// On click 'Update package' callback.
        /// </summary>
        public void UpdateClick()
        {
            Debug.LogFormat("[Bridge.UpdateClick]");
            reloading = false;
            var selectedPackage = GetSelectedPackage();

            if (selectedPackage.source == PackageSource.Git)
            {
                string packageId = selectedPackage.packageId;
                string url       = PackageUtils.GetRepoUrl(packageId);
#if UNITY_2019_3_OR_NEWER
                string refName = GetSelectedVersion().packageInfo.git.revision;
#else
                string refName = GetSelectedVersion().VersionId.Split('@')[1];
#endif
                PackageUtils.UninstallPackage(selectedPackage.name);
                PackageUtils.InstallPackage(selectedPackage.name, url, refName);
            }
            else
            {
                Expose.FromObject(packageDetails).Call("UpdateClick");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Update all infomations of git packages.
        /// </summary>
        public void UpdateGitPackages()
        {
            Debug.LogFormat("[Bridge.UpdateGitPackages] reloading = {0}", reloading);
            if (reloading)
            {
                reloading = false;
                return;
            }

            // Get git packages.
            var gitPackages = GetAllPackages()
#if UNITY_2019_3_OR_NEWER
                              .Where(x => x != null && x.installedVersion != null && x.installedVersion.HasTag(PackageTag.Git))
#else
                              .Where(x => x != null && x.Current != null && (x.Current.Origin == PackageSource.Git || x.Current.Origin == (PackageSource)99))
#endif
                              .ToArray();

            if (gitPackages.Length == 0)
            {
                return;
            }

            // Start job.
#if UNITY_2019_3_OR_NEWER
            HashSet <string> jobs = new HashSet <string>(gitPackages.Select(p => p.installedVersion.name));
#else
            HashSet <string> jobs = new HashSet <string>(gitPackages.Select(p => p.Current.Name));
#endif

            // Update
            foreach (var p in gitPackages)
            {
                var package = p;
#if UNITY_2019_3_OR_NEWER
                var pInfo       = p.installedVersion as UpmPackageVersion;
                var packageName = p.name;
                var repoUrl     = PackageUtils.GetRepoUrl(pInfo.uniqueId);

                // Get available branch / tag names with package version. (e.g. "refs/tags/1.1.0,1.1.0")
                GitUtils.GetRefs(pInfo.name, repoUrl, refs =>
                {
                    UpdatePackageVersions(package, refs);
                    jobs.Remove(packageName);
                    if (jobs.Count == 0)
                    {
                        // StopSpinner();
                        reloading = true;
                        UpdatePackageCollection();
                        reloading = false;
                    }
                });
#else
                var pInfo = p.Current;
                pInfo.IsLatest = false;
                Debug.LogFormat("[UpdateGitPackages] packageName = {0}", pInfo.Name);

                var packageName = pInfo.Name;
                pInfo.Origin = (PackageSource)99;
                var json    = JsonUtility.ToJson(pInfo);
                var repoUrl = PackageUtils.GetRepoUrl(pInfo.PackageId);

                // Get available branch/tag names with package version. (e.g. "refs/tags/1.1.0,1.1.0")
                GitUtils.GetRefs(pInfo.Name, repoUrl, refs =>
                {
                    UpdatePackageVersions(package, refs);
                    jobs.Remove(packageName);
                    if (jobs.Count == 0)
                    {
                        // StopSpinner();
                        reloading = true;
                        UpdatePackageCollection();
                        reloading = false;
                    }
                });
#endif
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// On click 'View repository' callback.
 /// </summary>
 public void ViewRepoClick()
 {
     Application.OpenURL(PackageUtils.GetRepoUrl(GetSelectedPackage().packageId, true));
 }