mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +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:
		 Vincent Neubauer
					Vincent Neubauer
				
			
				
					committed by
					
						 Lunny Xiao
						Lunny Xiao
					
				
			
			
				
	
			
			
			 Lunny Xiao
						Lunny Xiao
					
				
			
						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()) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user