mirror of
https://github.com/filebrowser/filebrowser.git
synced 2024-06-07 23:00:43 +00:00
fix: environmental variables not expanded in command (#1241)
This commit is contained in:
parent
e6a5bf116e
commit
f3afd5cb79
@ -65,6 +65,30 @@ func (r *Runner) exec(raw, evt, path, dst string, user *users.User) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
envMapping := func(key string) string {
|
||||||
|
switch key {
|
||||||
|
case "FILE":
|
||||||
|
return path
|
||||||
|
case "SCOPE":
|
||||||
|
return user.Scope
|
||||||
|
case "TRIGGER":
|
||||||
|
return evt
|
||||||
|
case "USERNAME":
|
||||||
|
return user.Username
|
||||||
|
case "DESTINATION":
|
||||||
|
return dst
|
||||||
|
default:
|
||||||
|
return os.Getenv(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for i, arg := range command {
|
||||||
|
if i == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
command[i] = os.Expand(arg, envMapping)
|
||||||
|
}
|
||||||
|
|
||||||
cmd := exec.Command(command[0], command[1:]...) //nolint:gosec
|
cmd := exec.Command(command[0], command[1:]...) //nolint:gosec
|
||||||
cmd.Env = append(os.Environ(), fmt.Sprintf("FILE=%s", path))
|
cmd.Env = append(os.Environ(), fmt.Sprintf("FILE=%s", path))
|
||||||
cmd.Env = append(cmd.Env, fmt.Sprintf("SCOPE=%s", user.Scope)) //nolint:gocritic
|
cmd.Env = append(cmd.Env, fmt.Sprintf("SCOPE=%s", user.Scope)) //nolint:gocritic
|
||||||
|
Loading…
Reference in New Issue
Block a user