// Package util provide some utility functions package util import ( "fmt" "io" "os" ) // CopyFile define func of copies a file from src to dst. // If the destination file exists, it will be overwritten. func CopyFile(src, dst string) error { sourceFile, err := os.Open(src) if err != nil { return fmt.Errorf("failed to open source file %s: %w", src, err) } defer sourceFile.Close() destFile, err := os.Create(dst) if err != nil { return fmt.Errorf("failed to create destination file %s: %w", dst, err) } defer destFile.Close() _, err = io.Copy(destFile, sourceFile) if err != nil { return fmt.Errorf("failed to copy file contents from %s to %s: %w", src, dst, err) } err = destFile.Sync() if err != nil { return fmt.Errorf("failed to sync destination file %s: %w", dst, err) } return nil }