diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-11-29 15:55:19 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-03-14 12:08:47 +0100 |
| commit | 3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586 (patch) | |
| tree | b3a97380088509e407930a71c6cd48dc61df716d | |
| parent | 27b757b5e633a3abdbb038c726c78a5ff762d0f5 (diff) | |
| download | mullvadvpn-3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586.tar.xz mullvadvpn-3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586.zip | |
Capitalize each word of a device name in the CLI
| -rw-r--r-- | mullvad-cli/src/cmds/account.rs | 9 | ||||
| -rw-r--r-- | mullvad-types/src/device.rs | 17 |
2 files changed, 21 insertions, 5 deletions
diff --git a/mullvad-cli/src/cmds/account.rs b/mullvad-cli/src/cmds/account.rs index c2068f24ee..c26f8bed69 100644 --- a/mullvad-cli/src/cmds/account.rs +++ b/mullvad-cli/src/cmds/account.rs @@ -128,10 +128,9 @@ impl Account { let device = rpc.get_device(()).await?.into_inner(); if !device.account_token.is_empty() { println!("Mullvad account: {}", device.account_token); - let inner_device = device.device.unwrap(); - println!("Device name : {}", inner_device.name); + let inner_device = Device::try_from(device.device.unwrap()).unwrap(); + println!("Device name : {}", inner_device.pretty_name()); if verbose { - let inner_device = Device::try_from(inner_device).unwrap(); println!("Device id : {}", inner_device.id); println!("Device pubkey : {}", inner_device.pubkey); } @@ -162,11 +161,11 @@ impl Account { let device = Device::try_from(device.clone()).unwrap(); if verbose { println!(); - println!("Name : {}", device.name); + println!("Name : {}", device.pretty_name()); println!("Id : {}", device.id); println!("Public key: {}", device.pubkey); } else { - println!("{}", device.name); + println!("{}", device.pretty_name()); } } diff --git a/mullvad-types/src/device.rs b/mullvad-types/src/device.rs index bb605a928c..cf26bd98db 100644 --- a/mullvad-types/src/device.rs +++ b/mullvad-types/src/device.rs @@ -18,6 +18,23 @@ pub struct Device { impl Eq for Device {} +impl Device { + /// Return name with each word capitalized: "Happy Seagull" instead of "happy seagull" + pub fn pretty_name(&self) -> String { + self.name + .split_whitespace() + .map(|word| { + let mut chars = word.chars(); + match chars.next() { + None => String::new(), + Some(c) => c.to_uppercase().chain(chars).collect(), + } + }) + .collect::<Vec<String>>() + .join(" ") + } +} + /// A complete device configuration. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] pub struct DeviceData { |
