From 46f957344499863c97a20d34cf8ba078d3245c3a Mon Sep 17 00:00:00 2001 From: Amine Hilaly Date: Fri, 30 Aug 2019 23:20:46 +0200 Subject: bridge/github: move cleaners to where is called --- bridge/github/config.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'bridge') diff --git a/bridge/github/config.go b/bridge/github/config.go index d1b57e10..bc4911e0 100644 --- a/bridge/github/config.go +++ b/bridge/github/config.go @@ -237,16 +237,6 @@ func promptTokenOptions(owner, project string) (string, error) { return promptToken() } - // Register restore state cleaner before prompting passwords inputs - termState, err := terminal.GetState(int(syscall.Stdin)) - if err != nil { - return "", err - } - - interrupt.RegisterCleaner(func() error { - return terminal.Restore(int(syscall.Stdin), termState) - }) - return loginAndRequestToken(owner, project) } } @@ -526,6 +516,16 @@ func validateProject(owner, project, token string) (bool, error) { } func promptPassword() (string, error) { + termState, err := terminal.GetState(int(syscall.Stdin)) + if err != nil { + return "", err + } + + cancel := interrupt.RegisterCleaner(func() error { + return terminal.Restore(int(syscall.Stdin), termState) + }) + defer cancel() + for { fmt.Print("password: ") @@ -547,6 +547,16 @@ func promptPassword() (string, error) { } func prompt2FA() (string, error) { + termState, err := terminal.GetState(int(syscall.Stdin)) + if err != nil { + return "", err + } + + cancel := interrupt.RegisterCleaner(func() error { + return terminal.Restore(int(syscall.Stdin), termState) + }) + defer cancel() + for { fmt.Print("two-factor authentication code: ") -- cgit