From 283ee108862da1db55a7cf944f20a245c096c388 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Tue, 12 Aug 2014 14:57:09 -0700 Subject: [PATCH] Add Self func to reexec pkg to return the current binary path Signed-off-by: Michael Crosby --- reexec/reexec.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/reexec/reexec.go b/reexec/reexec.go index 6a199e1ff1..136b905bd2 100644 --- a/reexec/reexec.go +++ b/reexec/reexec.go @@ -3,6 +3,8 @@ package reexec import ( "fmt" "os" + "os/exec" + "path/filepath" ) var registeredInitializers = make(map[string]func()) @@ -28,3 +30,16 @@ func Init() bool { return false } + +// Self returns the path to the current processes binary +func Self() string { + name := os.Args[0] + + if filepath.Base(name) == name { + if lp, err := exec.LookPath(name); err == nil { + name = lp + } + } + + return name +}