From 723a56eb9f01c1c18814a40ac9a22e05426d414e Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Sat, 2 Sep 2023 12:26:08 +0900 Subject: [PATCH] Copy symlink if origin of the link doesn't exist Fix #111 --- copy.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/copy.go b/copy.go index 085db78..f18c69a 100644 --- a/copy.go +++ b/copy.go @@ -254,14 +254,16 @@ func onsymlink(src, dest string, opt Options) error { // lcopy is for a symlink, // with just creating a new symlink by replicating src symlink. func lcopy(src, dest string) error { - src, err := os.Readlink(src) + orig, err := os.Readlink(src) + // @See https://github.com/otiai10/copy/issues/111 + // TODO: This might be controlled by Options in the future. if err != nil { - if os.IsNotExist(err) { - return nil + if os.IsNotExist(err) { // Copy symlink even if not existing + return os.Symlink(src, dest) } return err } - return os.Symlink(src, dest) + return os.Symlink(orig, dest) } // fclose ANYHOW closes file,