From 74051861bf2a88cc98df6eb51458189d50f9a7b9 Mon Sep 17 00:00:00 2001 From: Arsen Musayelyan Date: Tue, 29 Nov 2022 13:02:48 -0800 Subject: [PATCH] Properly resolve relative paths in helper functions --- helpers.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/helpers.go b/helpers.go index 15590f8..372db6c 100644 --- a/helpers.go +++ b/helpers.go @@ -38,7 +38,7 @@ func installHelperCmd(prefix string, perms os.FileMode) shutils.ExecFunc { return shutils.InsufficientArgsError(cmd, 1, len(args)) } - from := args[0] + from := resolvePath(hc, args[0]) to := "" if len(args) > 1 { to = filepath.Join(hc.Env.Get("pkgdir").Str, prefix, args[1]) @@ -59,7 +59,7 @@ func installManualCmd(hc interp.HandlerContext, cmd string, args []string) error return shutils.InsufficientArgsError(cmd, 1, len(args)) } - from := args[0] + from := resolvePath(hc, args[0]) number := filepath.Base(from) // The man page may be compressed with gzip. // If it is, the .gz extension must be removed to properly @@ -210,3 +210,10 @@ func helperInstall(from, to string, perms os.FileMode) error { _, err = io.Copy(dst, src) return err } + +func resolvePath(hc interp.HandlerContext, path string) string { + if !filepath.IsAbs(path) { + return filepath.Join(hc.Dir, path) + } + return path +}