mirror of
https://gitea.com/gitea/tea.git
synced 2025-01-08 01:00:59 +01:00
Fix/Login Edit Use Editor Env (#706)
It is very common to set `$EDITOR` to an terminal editor. To do so, we have to attach the stdin and stdout to interact with it. Otherwise the command would do nothing (when using `.Run()`) as it silently fails or hang the command (using `.Start()`) because it waits forever for input. Also attaching stderr to make debugging easier if someone has a non-compatible or broken `$EDITOR` set. Reviewed-on: https://gitea.com/gitea/tea/pulls/706 Reviewed-by: Lunny Xiao <lunny@noreply.gitea.com> Co-authored-by: Vincent Neubauer <v.neubauer@darlor.de> Co-committed-by: Vincent Neubauer <v.neubauer@darlor.de>
This commit is contained in:
parent
66927f8972
commit
6f924df8ac
@ -4,6 +4,10 @@
|
||||
package login
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"code.gitea.io/tea/cmd/flags"
|
||||
"code.gitea.io/tea/modules/config"
|
||||
|
||||
@ -23,5 +27,14 @@ var CmdLoginEdit = cli.Command{
|
||||
}
|
||||
|
||||
func runLoginEdit(_ *cli.Context) error {
|
||||
if e, ok := os.LookupEnv("EDITOR"); ok && e != "" {
|
||||
cmd := exec.Command(e, config.GetConfigPath())
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
}
|
||||
return open.Start(config.GetConfigPath())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user