github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/test/setup/reposetup/modify.go (about)

     1  package reposetup
     2  
     3  import (
     4  	"fmt"
     5  
     6  	git "github.com/go-git/go-git/v5"
     7  )
     8  
     9  func ModifyRepo(path string) error {
    10  	basePath := path
    11  
    12  	repo, err := git.PlainOpen(path)
    13  	if err != nil {
    14  		return fmt.Errorf("failed to open repo: %w", err)
    15  	}
    16  
    17  	wt, err := repo.Worktree()
    18  	if err != nil {
    19  		return fmt.Errorf("failed to get worktree: %w", err)
    20  	}
    21  
    22  	if err := modifyFile(basePath, "file1", "new contents"); err != nil {
    23  		return err
    24  	}
    25  
    26  	if err := createNewFile(basePath, "untrackedfile", fileContents); err != nil {
    27  		return err
    28  	}
    29  
    30  	const newFileName = "addedfile"
    31  	if err := createNewFile(basePath, newFileName, fileContents); err != nil {
    32  		return err
    33  	}
    34  	if _, err := wt.Add(newFileName); err != nil {
    35  		return fmt.Errorf("failed to add file %q: %w", newFileName, err)
    36  	}
    37  
    38  	return nil
    39  }
    40  
    41  func modifyFile(basePath, name, contents string) error {
    42  	return createNewFile(basePath, name, contents)
    43  }