in internal/settings/environment_linux.go [35:58]
func GetEnvironment() (environment HandlerEnvironment, _ error) {
dir, err := scriptDirectory()
if err != nil {
return environment, errorhelper.AddStackToError(fmt.Errorf("vmextension: cannot find base directory of the running process: %v", err))
}
paths := []string{
filepath.Join(dir, HandlerEnvFileName), // this level (i.e. executable is in [EXT_NAME]/.)
filepath.Join(dir, "..", HandlerEnvFileName), // one up (i.e. executable is in [EXT_NAME]/bin/.)
}
var b []byte
for _, p := range paths {
o, err := ioutil.ReadFile(p)
if err != nil && !os.IsNotExist(err) {
return environment, errorhelper.AddStackToError(fmt.Errorf("vmextension: error examining HandlerEnvironment at '%s': %v", p, err))
} else if err == nil {
b = o
break
}
}
if b == nil {
return environment, errorhelper.AddStackToError(fmt.Errorf("vmextension: Cannot find HandlerEnvironment at paths: %s", strings.Join(paths, ", ")))
}
return parseEnvironmentManifest(b)
}