private NPath GrabZipFromResources() { return(AssemblyResources.ToFile(ResourceType.Generic, "octorun.zip", installDetails.BaseZipPath, environment)); }
public Task <bool> SetupGitLfsIfNeeded(NPath tempPath, IProgress <float> zipFileProgress = null, IProgress <long> estimatedDurationProgress = null) { logger.Trace("SetupGitLfsIfNeeded"); cancellationToken.ThrowIfCancellationRequested(); if (IsGitLfsExtracted()) { logger.Trace("Already extracted {0}, returning", GitLfsExecutablePath); return(TaskEx.FromResult(false)); } cancellationToken.ThrowIfCancellationRequested(); var archiveFilePath = AssemblyResources.ToFile(ResourceType.Platform, GitLfsZipFile, tempPath, environment); if (!archiveFilePath.FileExists()) { logger.Warning("Archive \"{0}\" missing", archiveFilePath.ToString()); archiveFilePath = environment.ExtensionInstallPath.Combine(archiveFilePath); if (!archiveFilePath.FileExists()) { logger.Warning("Archive \"{0}\" missing, returning", archiveFilePath.ToString()); return(TaskEx.FromResult(false)); } } cancellationToken.ThrowIfCancellationRequested(); var unzipPath = tempPath.Combine("git-lfs"); try { logger.Trace("Extracting \"{0}\" to \"{1}\"", archiveFilePath, unzipPath); extractCallback(archiveFilePath, unzipPath, cancellationToken, zipFileProgress, estimatedDurationProgress); } catch (Exception ex) { logger.Error(ex, "Error Extracting Archive:\"{0}\" OutDir:\"{1}\"", archiveFilePath, tempPath); return(TaskEx.FromResult(false)); } cancellationToken.ThrowIfCancellationRequested(); try { var unzippedGitLfsExecutablePath = unzipPath.Combine(GitLfsExecutable); logger.Trace("Copying \"{0}\" to \"{1}\"", unzippedGitLfsExecutablePath, GitLfsExecutablePath); unzippedGitLfsExecutablePath.Copy(GitLfsExecutablePath); } catch (Exception ex) { logger.Error(ex, "Error Copying git-lfs Source:\"{0}\" Destination:\"{1}\"", unzipPath, GitLfsExecutablePath); return(TaskEx.FromResult(false)); } unzipPath.DeleteIfExists(); return(TaskEx.FromResult(true)); }