golang port of python's shutil