示例#1
0
 public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath unityContentsPath, NPath assetsPath)
 {
     defaultEnvironment.Initialize(unityVersion, extensionInstallPath, unityPath, unityContentsPath, assetsPath);
     defaultEnvironment.LocalSettings.SettingsPath.DeleteIfExists();
     defaultEnvironment.UserSettings.SettingsPath.DeleteIfExists();
     defaultEnvironment.SystemSettings.SettingsPath.DeleteIfExists();
 }
示例#2
0
        public void OneTimeSetup()
        {
            GitHub.Unity.Guard.InUnitTestRunner = true;
            LogHelper.LogAdapter = new MultipleLogAdapter(new FileLogAdapter($"..\\{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}-tasksystem-tests.log"));
            //LogHelper.TracingEnabled = true;
            TaskManager = new TaskManager();
            var syncContext = new ThreadSynchronizationContext(Token);

            TaskManager.UIScheduler = new SynchronizationContextTaskScheduler(syncContext);

            var env = new DefaultEnvironment(new CacheContainer());

            TestBasePath = NPath.CreateTempDirectory("integration tests");
            env.FileSystem.SetCurrentDirectory(TestBasePath);
            env.Initialize("5.6", TestBasePath, TestBasePath, TestBasePath, TestBasePath.Combine("Assets"));

            var repo = Substitute.For <IRepository>();

            repo.LocalPath.Returns(TestBasePath);
            env.Repository = repo;

            var platform = new Platform(env);

            ProcessManager = new ProcessManager(env, platform.GitEnvironment, Token);
            var processEnv = platform.GitEnvironment;
            var installer  = new GitInstaller(env, ProcessManager, TaskManager.Token);
            var state      = installer.FindSystemGit(new GitInstaller.GitInstallationState());

            env.GitInstallationState = state;
        }
示例#3
0
    private void InitGitClient()
    {
        Debug.Log("Custom Git Window Started");
        if (gitClient == null)
        {
            var    cacheContainer           = new CacheContainer();
            var    defaultEnvironment       = new DefaultEnvironment(cacheContainer);
            string unityAssetsPath          = null;
            string unityApplicationContents = null;
            string unityVersion             = null;
            NPath  extensionInstallPath     = default(NPath);
            if (unityApplication == null)
            {
                unityAssetsPath          = Application.dataPath;
                unityApplication         = EditorApplication.applicationPath;
                unityApplicationContents = EditorApplication.applicationContentsPath;
                extensionInstallPath     = DetermineInstallationPath();
                unityVersion             = Application.unityVersion;
            }

            defaultEnvironment.Initialize(unityVersion, extensionInstallPath, unityApplication.ToNPath(),
                                          unityApplicationContents.ToNPath(), unityAssetsPath.ToNPath());

            var taskManager        = new TaskManager();
            var processEnvironment = new ProcessEnvironment(defaultEnvironment);
            var processManager     = new ProcessManager(defaultEnvironment, processEnvironment, taskManager.Token);

            gitClient = new GitClient(defaultEnvironment, processManager, taskManager.Token);
        }
    }
    public static void Menu_DownloadLatestDugite()
    {
        LogHelper.LogAdapter = new UnityLogAdapter();

        var unityAssetsPath          = Application.dataPath;
        var unityApplication         = EditorApplication.applicationPath;
        var unityApplicationContents = EditorApplication.applicationContentsPath;
        var extensionInstallPath     = Application.dataPath.ToNPath().Parent;
        var unityVersion             = Application.unityVersion;
        var env = new DefaultEnvironment();

        env.Initialize(unityVersion, extensionInstallPath, unityApplication.ToNPath(),
                       unityApplicationContents.ToNPath(), unityAssetsPath.ToNPath());
        env.InitializeRepository();
        TaskManager.Instance.Initialize(new UnityUIThreadSynchronizationContext());

        var installer = new GitInstaller.GitInstallDetails(env.RepositoryPath, env);
        var manifest  = DugiteReleaseManifest.Load(installer.GitManifest, GitInstaller.GitInstallDetails.GitPackageFeed, env);

        var downloader   = new Downloader();
        var downloadPath = env.RepositoryPath.Combine("downloads");

        foreach (var asset in manifest.Assets)
        {
            downloadPath.Combine(asset.Url.Filename).DeleteIfExists();
            downloader.QueueDownload(asset.Url, downloadPath, retryCount: 3);
        }

        downloader.Progress(p => {
            TaskManager.Instance.RunInUI(() => {
                if (EditorUtility.DisplayCancelableProgressBar(p.Message, p.InnerProgress?.InnerProgress?.Message ?? p.InnerProgress?.Message ?? p.Message,
                                                               p.Percentage))
                {
                    downloader.Cancel();
                }
            });
        }).FinallyInUI((success, ex) => {
            EditorUtility.ClearProgressBar();
            if (success)
            {
                EditorUtility.DisplayDialog("Download done", downloadPath, "Ok");
            }
            else
            {
                EditorUtility.DisplayDialog("Error!", ex.GetExceptionMessageOnly(), "Ok");
            }
        }).Start();
    }
示例#5
0
 public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath unityContentsPath, NPath assetsPath)
 {
     defaultEnvironment.Initialize(unityVersion, extensionInstallPath, unityPath, unityContentsPath, assetsPath);
 }