/// <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"); } }
/// <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 } }
/// <summary> /// On click 'View repository' callback. /// </summary> public void ViewRepoClick() { Application.OpenURL(PackageUtils.GetRepoUrl(GetSelectedPackage().packageId, true)); }