From faf78f1e50c46219e4117493211a2e512e71bcf2 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 9 Sep 2019 23:04:35 +0900 Subject: [PATCH] update --- VERSION | 2 +- utils/utils.go | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index ace3b54..8dfb3fa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2019090422 +2019090923 diff --git a/utils/utils.go b/utils/utils.go index 830d481..00b4360 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -847,7 +847,11 @@ func Untar(file string, folder string) *Error { if strings.HasPrefix(header.Linkname, "/") { os.Symlink(fmt.Sprintf("%s%s", strings.TrimSuffix(folder, "/"), header.Linkname), target) } else { - os.Symlink(header.Linkname, target) + if strings.ContainsAny(header.Linkname, "/") { + os.Symlink(fmt.Sprintf("%s%s", folder, header.Linkname), target) + } else { + os.Symlink(header.Linkname, target) + } } //we should avoid of creating hard link @@ -855,7 +859,13 @@ func Untar(file string, folder string) *Error { if strings.HasPrefix(header.Linkname, "/") { os.Symlink(fmt.Sprintf("%s%s", strings.TrimSuffix(folder, "/"), header.Linkname), target) } else { - os.Symlink(header.Linkname, target) + //for some hard links they link to usr/bin/xxx + if strings.ContainsAny(header.Linkname, "/") { + os.Symlink(fmt.Sprintf("%s%s", folder, header.Linkname), target) + } else { + //only works on linking to the file inside the same folder + os.Symlink(header.Linkname, target) + } } } }