in tools/eksDistroBuildToolingOpsTools/pkg/git/gogitClient.go [430:469]
func (g *GogitClient) CopyFile(curPath, dstPath string) error {
repo, err := g.Client.OpenRepo()
if err != nil {
logger.Error(err, "Opening repo")
return err
}
wt, err := repo.Worktree()
if err != nil {
logger.Error(err, "Accessing worktree")
return err
}
curFile, err := wt.Filesystem.Open(curPath)
if err != nil {
logger.Error(err, "Opening file", curPath)
return err
}
dstFile, err := wt.Filesystem.Create(dstPath)
if err != nil {
logger.Error(err, "creating file", dstFile)
return err
}
if _, err = io.Copy(curFile, dstFile); err != nil {
logger.Error(err, "copying file", "original", curFile, "destination", dstFile)
return err
}
if err := curFile.Close(); err != nil {
return err
}
if err := dstFile.Close(); err != nil {
return err
}
logger.V(4).Info("File copied", "destination file", dstFile)
return nil
}