Ejemplo n.º 1
0
 public GetResponse<RepoPathPair> Check(
     GetResponse<string> remote,
     DirectoryPath localDir,
     CancellationToken cancel)
 {
     try
     {
         cancel.ThrowIfCancellationRequested();
         if (ShouldKeep.ShouldKeep(localDir: localDir, remoteUrl: remote))
         {
             return GetResponse<RepoPathPair>.Succeed(new(remote.Value, localDir), remote.Reason);
         }
         cancel.ThrowIfCancellationRequested();
         
         DeleteEntireDirectory.DeleteEntireFolder(localDir);
         cancel.ThrowIfCancellationRequested();
         
         if (remote.Failed) return GetResponse<RepoPathPair>.Fail(new(remote.Value, string.Empty), remote.Reason);
         _logger.Information("Cloning remote {RemotePath}", remote.Value);
         var clonePath = CloneRepo.Clone(remote.Value, localDir);
         return GetResponse<RepoPathPair>.Succeed(new(remote.Value, clonePath), remote.Reason);
     }
     catch (Exception ex)
     {
         _logger.Error(ex, "Failure while checking/cloning repository");
         return GetResponse<RepoPathPair>.Fail(new(remote.Value, string.Empty), ex);
     }
 }
Ejemplo n.º 2
0
        public void Reset()
        {
            var workingDirectory = ProfileDirectories.WorkingDirectory;

            DeleteEntireDirectory.DeleteEntireFolder(workingDirectory);
            FileSystem.Directory.CreateDirectory(workingDirectory);
        }
        public async Task Prep(CancellationToken cancel)
        {
            DeleteEntireDirectory.DeleteEntireFolder(Pathing.BaseFolder);
            FileSystem.Directory.CreateDirectory(Pathing.BaseFolder);
            CreateSolutionFile.Create(Pathing.SolutionFile);
            CreateProject.Create(GameCategory.Skyrim, Pathing.ProjectFile, insertOldVersion: true, targetFramework: "net5.0");
            AddProjectToSolution.Add(Pathing.SolutionFile, Pathing.ProjectFile);

            await _processRunner.Run(
                _dotNetCommandStartConstructor.Construct("restore", Pathing.ProjectFile),
                cancel : cancel).ConfigureAwait(false);
        }