func CopyFile(source string, destination string) (err error) {
	originalFile, err := os.Open(source)
	if err != nil {
		return err
	}
	defer originalFile.Close()
	destinationFile, err := os.Create(destination)
	if err != nil {
		return err
	}
	defer destinationFile.Close()
	_, err = io.Copy(destinationFile, originalFile)
	if err == nil {
		info, err := os.Stat(source)
		if err != nil {
			err = os.Chmod(destination, info.Mode())
		}
	}
	return
}
Copies original source to destination destination.
package watch
import "os"
import "io"
import "io/ioutil"
import "log"