func()

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
}