Commit

Add --quiet flag that prints nothing

g1t agentcommitted Parente58de96Browse files
3 files+21−00/3 viewed
+11−0
3434 pub times: usize,
3535 /// The greeting language (`--lang CODE`).
3636 pub lang: Lang,
37+ /// Whether to print nothing (`--quiet`).
38+ pub quiet: bool,
3739 }
3840
3941 impl Default for Options {
4446 version: false,
4547 times: 1,
4648 lang: Lang::En,
49+ quiet: false,
4750 }
4851 }
4952 }
6770 options.shout = true;
6871 } else if arg == "--version" {
6972 options.version = true;
73+ } else if arg == "--quiet" {
74+ options.quiet = true;
7075 } else if arg == "--times" {
7176 let value = args
7277 .next()
125130 }
126131
127132 #[test]
133+ fn parse_args_quiet() {
134+ assert!(parse_args(args(&["--quiet", "Ada"])).unwrap().quiet);
135+ assert!(!parse_args(args(&["Ada"])).unwrap().quiet);
136+ }
137+
138+ #[test]
128139 fn parse_args_no_args() {
129140 assert_eq!(parse_args(args(&[])).unwrap().name, None);
130141 }
+3−0
1414 println!("{}", env!("CARGO_PKG_VERSION"));
1515 return;
1616 }
17+ if options.quiet {
18+ return;
19+ }
1720 // The name given, or whoever is signed in.
1821 let name = options
1922 .name
+7−0
8585 let stderr = String::from_utf8(output.stderr).unwrap();
8686 assert!(stderr.contains("--lang requires a value"), "stderr was {stderr:?}");
8787 }
88+
89+#[test]
90+fn quiet_prints_nothing() {
91+ let output = run(&["--quiet", "Ada"]);
92+ assert!(output.status.success());
93+ assert!(output.stdout.is_empty());
94+}