Kiln » gitkiln Read More
Clone URL:  
pass_windows.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package kiln /* #include <conio.h> */ import "C" import ( "errors" "fmt" ) func getPass(prompt string) (string, error) { fmt.Print("Password: ") pass := make([]rune, 0) var ch rune for { ch = rune(C._getwch()) if ch == '\n' || ch == '\r' { break } else if ch == 3 { return "", errors.New("break") } else if ch == '\b' && len(pass) > 0 { pass = pass[0 : len(pass)-1] } else { pass = append(pass, ch) } } C._putch('\r') C._putch('\n') return string(pass), nil }