mirror of https://github.com/caddyserver/caddy.git
cmd: upgrade: resolve symlink of the executable (#5891)
This commit is contained in:
parent
ae5e2d96b7
commit
979c413f04
|
@ -22,6 +22,7 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
"runtime"
|
"runtime"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
|
@ -103,6 +104,15 @@ func upgradeBuild(pluginPkgs map[string]struct{}, fl Flags) (int, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return caddy.ExitCodeFailedStartup, fmt.Errorf("retrieving current executable permission bits: %v", err)
|
return caddy.ExitCodeFailedStartup, fmt.Errorf("retrieving current executable permission bits: %v", err)
|
||||||
}
|
}
|
||||||
|
if thisExecStat.Mode()&os.ModeSymlink == os.ModeSymlink {
|
||||||
|
symSource := thisExecPath
|
||||||
|
// we are a symlink; resolve it
|
||||||
|
thisExecPath, err = filepath.EvalSymlinks(thisExecPath)
|
||||||
|
if err != nil {
|
||||||
|
return caddy.ExitCodeFailedStartup, fmt.Errorf("resolving current executable symlink: %v", err)
|
||||||
|
}
|
||||||
|
l.Info("this executable is a symlink", zap.String("source", symSource), zap.String("target", thisExecPath))
|
||||||
|
}
|
||||||
l.Info("this executable will be replaced", zap.String("path", thisExecPath))
|
l.Info("this executable will be replaced", zap.String("path", thisExecPath))
|
||||||
|
|
||||||
// build the request URL to download this custom build
|
// build the request URL to download this custom build
|
||||||
|
|
Loading…
Reference in New Issue