Skip to content

Commit d967cd6

Browse files
committed
get config key
1 parent 5525944 commit d967cd6

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

src/args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ pub enum ConfigCommands {
333333
#[derive(Debug, Parser)]
334334
pub struct ConfigGetArgs {
335335
/// Option name to get.
336-
#[arg(long, default_value = None)]
336+
#[arg(default_value = None)]
337337
pub key: Option<String>,
338338
}
339339

src/commands/config.rs

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use anyhow::{Context, Result, bail};
33
use firefly_types::Encode;
44
use std::path::Path;
55

6-
pub fn cmd_config_get(vfs: &Path, _args: &ConfigGetArgs) -> Result<()> {
6+
pub fn cmd_config_get(vfs: &Path, args: &ConfigGetArgs) -> Result<()> {
77
if !vfs.exists() {
88
bail!("vfs is not created yet")
99
}
@@ -13,6 +13,32 @@ pub fn cmd_config_get(vfs: &Path, _args: &ConfigGetArgs) -> Result<()> {
1313
}
1414
let raw = std::fs::read(settings_path).context("read settings")?;
1515
let s = firefly_types::Settings::decode(&raw).context("parse settings")?;
16+
17+
if let Some(key) = &args.key {
18+
match key.as_str() {
19+
"xp" => println!("{}", s.xp),
20+
"badges" => println!("{}", s.badges),
21+
"country" => println!("{}", p(&s.country)),
22+
"lang" => println!("{}", p(&s.lang)),
23+
"name" => println!("{}", s.name),
24+
"timezone" => println!("{}", s.timezone),
25+
"auto_lock" => println!("{}", s.auto_lock),
26+
"font_size" => println!("{}", s.font_size),
27+
"headphones_volume" => println!("{}", s.headphones_volume),
28+
"leds_brightness" => println!("{}", s.leds_brightness),
29+
"screen_brightness" => println!("{}", s.screen_brightness),
30+
"speakers_volume" => println!("{}", s.speakers_volume),
31+
"contrast" => println!("{}", s.contrast),
32+
"easter_eggs" => println!("{}", s.easter_eggs),
33+
"gamepad_mode" => println!("{}", s.gamepad_mode),
34+
"reduce_flashing" => println!("{}", s.reduce_flashing),
35+
"rotate_screen" => println!("{}", s.rotate_screen),
36+
"telemetry" => println!("{}", s.telemetry),
37+
_ => bail!("unsupported key"),
38+
}
39+
return Ok(());
40+
}
41+
1642
println!("{{");
1743
println!(r#" "xp": {},"#, s.xp);
1844
println!(r#" "badges": {},"#, s.badges);
@@ -22,12 +48,12 @@ pub fn cmd_config_get(vfs: &Path, _args: &ConfigGetArgs) -> Result<()> {
2248
println!(r#" "timezone": "{}","#, s.timezone);
2349

2450
println!();
25-
println!(r#" "auto_lock": {},"#, s.auto_lock);
26-
println!(r#" "font_size": {},"#, s.font_size);
27-
println!(r#" "headphones_volume": {},"#, s.headphones_volume);
28-
println!(r#" "leds_brightness": {},"#, s.leds_brightness);
29-
println!(r#" "screen_brightness": {},"#, s.screen_brightness);
30-
println!(r#" "speakers_volume": {},"#, s.speakers_volume);
51+
println!(r#" "auto_lock": {:>3},"#, s.auto_lock);
52+
println!(r#" "font_size": {:>3},"#, s.font_size);
53+
println!(r#" "headphones_volume": {:>3},"#, s.headphones_volume);
54+
println!(r#" "leds_brightness": {:>3},"#, s.leds_brightness);
55+
println!(r#" "screen_brightness": {:>3},"#, s.screen_brightness);
56+
println!(r#" "speakers_volume": {:>3},"#, s.speakers_volume);
3157

3258
println!();
3359
println!(r#" "contrast": {},"#, s.contrast);

0 commit comments

Comments
 (0)