package utils import ( "io" "os" ) func CopyFile(src, dst string) error { sourceFileStat, err := os.Stat(src) if err != nil { return err } if !sourceFileStat.Mode().IsRegular() { return os.ErrInvalid } source, err := os.Open(src) if err != nil { return err } defer func() { _ = source.Close() }() destination, err := os.Create(dst) if err != nil { return err } defer func() { _ = destination.Close() }() if _, err := io.Copy(destination, source); err != nil { return err } return os.Chmod(dst, sourceFileStat.Mode()) }