mirror of
https://gitea.com/gitea/tea.git
synced 2025-01-08 17:20:57 +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
|
package login
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
|
||||||
"code.gitea.io/tea/cmd/flags"
|
"code.gitea.io/tea/cmd/flags"
|
||||||
"code.gitea.io/tea/modules/config"
|
"code.gitea.io/tea/modules/config"
|
||||||
|
|
||||||
@ -23,5 +27,14 @@ var CmdLoginEdit = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func runLoginEdit(_ *cli.Context) error {
|
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())
|
return open.Start(config.GetConfigPath())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user