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 }