public void InitializeRepository() { isBusy = true; progress.UpdateProgress(0, 100, "Initializing..."); var thread = new Thread(() => { var success = true; try { var targetPath = NPath.CurrentDirectory; var gitignore = targetPath.Combine(".gitignore"); var gitAttrs = targetPath.Combine(".gitattributes"); var assetsGitignore = targetPath.Combine("Assets", ".gitignore"); var filesForInitialCommit = new List <string> { gitignore, gitAttrs, assetsGitignore }; GitClient.Init().RunSynchronously(); progress.UpdateProgress(10, 100, "Initializing..."); ConfigureMergeSettings(); progress.UpdateProgress(20, 100, "Initializing..."); GitClient.LfsInstall().RunSynchronously(); progress.UpdateProgress(30, 100, "Initializing..."); AssemblyResources.ToFile(ResourceType.Generic, ".gitignore", targetPath, Environment); AssemblyResources.ToFile(ResourceType.Generic, ".gitattributes", targetPath, Environment); assetsGitignore.CreateFile(); GitClient.Add(filesForInitialCommit).RunSynchronously(); progress.UpdateProgress(60, 100, "Initializing..."); GitClient.Commit("Initial commit", null).RunSynchronously(); progress.UpdateProgress(70, 100, "Initializing..."); Environment.InitializeRepository(); } catch (Exception ex) { Logger.Error(ex, "A problem ocurred initializing the repository"); progress.UpdateProgress(90, 100, "Failed to initialize repository"); success = false; } if (success) { progress.UpdateProgress(90, 100, "Initializing..."); RestartRepository(); TaskManager.RunInUI(InitializeUI); UsageTracker.IncrementProjectsInitialized(); progress.UpdateProgress(100, 100, "Initialized"); } isBusy = false; }); thread.Start(); }
public static Package Load(ITaskManager taskManager, IGitEnvironment environment, UriString packageFeed) { Package package = null; var filename = packageFeed.Filename.ToSPath(); if (!filename.IsInitialized || filename.IsRoot) { return(package); } var key = filename.FileNameWithoutExtension + "_updatelastCheckTime"; var now = DateTimeOffset.Now; var feed = environment.UserCachePath.Combine(packageFeed.Filename); if (!feed.FileExists() || now.Date > environment.UserSettings.Get <DateTimeOffset>(key).Date) { feed = new DownloadTask(taskManager, packageFeed, environment.UserCachePath) .Catch(ex => { Logger.Warning(@"Error downloading package feed:{0} ""{1}"" Message:""{2}""", packageFeed, ex.GetType().ToString(), ex.GetExceptionMessageShort()); return(true); }) .RunSynchronously().ToSPath(); if (feed.IsInitialized) { environment.UserSettings.Set <DateTimeOffset>(key, now); } } if (!feed.IsInitialized) { // try from assembly resources feed = AssemblyResources.ToFile(ResourceType.Platform, packageFeed.Filename, environment.UserCachePath, environment); } if (feed.IsInitialized) { try { package = feed.ReadAllText().FromJson <Package>(true, false); } catch (Exception ex) { Logger.Error(ex); } } return(package); }
public static DugiteReleaseManifest Load(ITaskManager taskManager, SPath localCacheFile, UriString packageFeed, IGitEnvironment environment, bool alwaysDownload = false) { DugiteReleaseManifest package = null; var filename = localCacheFile.FileName; var cacheDir = localCacheFile.Parent; var key = localCacheFile.FileNameWithoutExtension + "_updatelastCheckTime"; var now = DateTimeOffset.Now; if (!localCacheFile.FileExists() || (alwaysDownload || now.Date > environment.UserSettings.Get <DateTimeOffset>(key).Date)) { var result = new DownloadTask(taskManager, packageFeed, localCacheFile.Parent, filename) .Catch(ex => { Logger.Warning(@"Error downloading package feed:{0} ""{1}"" Message:""{2}""", packageFeed, ex.GetType().ToString(), ex.GetExceptionMessageShort()); return(true); }).RunSynchronously(); localCacheFile = result.ToSPath(); if (localCacheFile.IsInitialized && !alwaysDownload) { environment.UserSettings.Set <DateTimeOffset>(key, now); } } if (!localCacheFile.IsInitialized) { // try from assembly resources localCacheFile = AssemblyResources.ToFile(ResourceType.Platform, filename, cacheDir, environment); } if (localCacheFile.IsInitialized) { try { package = Load(taskManager, localCacheFile, cacheDir, environment); } catch (Exception ex) { Logger.Error(ex); } } return(package); }
public static DugiteReleaseManifest Load(NPath localCacheFile, UriString packageFeed, IEnvironment environment) { DugiteReleaseManifest package = null; //NPath localCacheFeed = environment.UserCachePath.Combine("embedded-git.json"); var filename = localCacheFile.FileName; var key = localCacheFile.FileNameWithoutExtension + "_updatelastCheckTime"; var now = DateTimeOffset.Now; if (!localCacheFile.FileExists() || now.Date > environment.UserSettings.Get <DateTimeOffset>(key).Date) { localCacheFile = new DownloadTask(TaskManager.Instance.Token, environment.FileSystem, packageFeed, environment.UserCachePath, filename) .Catch(ex => { LogHelper.Warning(@"Error downloading package feed:{0} ""{1}"" Message:""{2}""", packageFeed, ex.GetType().ToString(), ex.GetExceptionMessageShort()); return(true); }) .RunSynchronously(); if (localCacheFile.IsInitialized) { environment.UserSettings.Set <DateTimeOffset>(key, now); } } if (!localCacheFile.IsInitialized) { // try from assembly resources localCacheFile = AssemblyResources.ToFile(ResourceType.Platform, packageFeed.Filename, environment.UserCachePath, environment); } if (localCacheFile.IsInitialized) { try { package = Load(localCacheFile, environment); } catch (Exception ex) { LogHelper.Error(ex); } } return(package); }
private NPath GrabZipFromResources() { return(AssemblyResources.ToFile(ResourceType.Generic, "octorun.zip", installDetails.BaseZipPath, environment)); }