summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-11-29 15:55:19 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-03-14 12:08:47 +0100
commit3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586 (patch)
treeb3a97380088509e407930a71c6cd48dc61df716d
parent27b757b5e633a3abdbb038c726c78a5ff762d0f5 (diff)
downloadmullvadvpn-3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586.tar.xz
mullvadvpn-3e7bffc747fa61a8f3774b3ab2dbc9ea8c83e586.zip
Capitalize each word of a device name in the CLI
-rw-r--r--mullvad-cli/src/cmds/account.rs9
-rw-r--r--mullvad-types/src/device.rs17
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 {