code: func passwordFromConsole() (string, error) {
  	fd := syscall.Stdin
  	state, err := terminal.GetState(int(fd))
  
  	// intercept Ctr+C and restore terminal
  	sigCh := make(chan os.Signal, 1)
  	closeCh := make(chan int)
  	if err != nil {
  		log.Warnf("failed reading terminal state: %v", err)
  	} else {
  		signal.Notify(sigCh, syscall.SIGINT)
  		go func() {
  			select {
  			case <-sigCh:
  				terminal.Restore(int(fd), state)
  				os.Exit(1)
  			case <-closeCh:
  			}
  		}()
  	}
  	defer func() {
  		close(closeCh)
  	}()
  
  	bytes, err := terminal.ReadPassword(int(fd))
  	return string(bytes), err
  }
docs: // passwordFromConsole reads from stdin without echoing typed characters to stdout