term/
term.rs

1extern crate nixterm;
2
3use nixterm::term::Term;
4
5pub fn main() {
6    let term = Term::new().unwrap();
7
8    // save the terminal's settings
9    let settings = term.settings();
10
11    term.writer()
12        .bold()
13        .println("Demo Signup Form")
14        .println("")
15        .done()
16        .unwrap();
17
18    term.writer()
19        .foreground("green")
20        .print("\t--> ")
21        .print("Username: ")
22        .done()
23        .unwrap();
24
25    let name = term.readline().unwrap();
26
27    // Turn echo off to hide the password
28    term.update(settings.clone().echo(false)).unwrap();
29
30    term.writer()
31        .foreground("green")
32        .print("\t--> ")
33        .print("Password: ")
34        .done()
35        .unwrap();
36    let password = term.readline().unwrap();
37
38    term.println("");
39
40    term.writer()
41        .foreground("green")
42        .print("\t--> ")
43        .print("Password (Confirm): ")
44        .done()
45        .unwrap();
46    let password2 = term.readline().unwrap();
47
48    // restore the original settings
49    term.update(settings).unwrap();
50
51    term.println("");
52    term.println("");
53
54    if password != password2 {
55        term.writer()
56            .foreground("red")
57            .bold()
58            .println("Passwords don't match!")
59            .done()
60            .unwrap();
61    } else {
62        term.writer()
63            .foreground("cyan")
64            .print("Thank you, ")
65            .foreground("cyan")
66            .bold()
67            .println(name.trim())
68            .done()
69            .unwrap();
70    }
71}