fix(client): correct profile overwrite prompt logic (only save on confirm or --save)
This commit is contained in:
parent
d049846564
commit
2af08c455a
@ -102,28 +102,34 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
// Possibly save if profile specified and --save or new entry
|
// Possibly save if profile specified and --save or new entry
|
||||||
if let Some(name) = parsed.profile.as_ref() {
|
if let Some(name) = parsed.profile.as_ref() {
|
||||||
let existing = profiles_mut.profiles.get(name);
|
let existing = profiles_mut.profiles.get(name);
|
||||||
if existing.is_none() || parsed.save {
|
match existing {
|
||||||
// If existing and not forced save, prompt
|
None => {
|
||||||
if existing.is_some() && !parsed.save {
|
// New profile: auto-save immediately
|
||||||
if prompt_yes_no(&format!("Overwrite existing profile '{name}'? [y/N]: ")) {
|
|
||||||
profiles_mut.profiles.insert(
|
profiles_mut.profiles.insert(
|
||||||
name.clone(),
|
name.clone(),
|
||||||
ProfileEntry {
|
ProfileEntry { url: u.clone(), tls_ca: t.clone() },
|
||||||
url: u.clone(),
|
|
||||||
tls_ca: t.clone(),
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
let _ = save_profiles(&profiles_mut);
|
let _ = save_profiles(&profiles_mut);
|
||||||
}
|
}
|
||||||
} else {
|
Some(entry) => {
|
||||||
|
let changed = entry.url != u || entry.tls_ca != t;
|
||||||
|
if changed {
|
||||||
|
if parsed.save {
|
||||||
profiles_mut.profiles.insert(
|
profiles_mut.profiles.insert(
|
||||||
name.clone(),
|
name.clone(),
|
||||||
ProfileEntry {
|
ProfileEntry { url: u.clone(), tls_ca: t.clone() },
|
||||||
url: u.clone(),
|
|
||||||
tls_ca: t.clone(),
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
let _ = save_profiles(&profiles_mut);
|
let _ = save_profiles(&profiles_mut);
|
||||||
|
} else if prompt_yes_no(&format!(
|
||||||
|
"Overwrite existing profile '{name}'? [y/N]: "
|
||||||
|
)) {
|
||||||
|
profiles_mut.profiles.insert(
|
||||||
|
name.clone(),
|
||||||
|
ProfileEntry { url: u.clone(), tls_ca: t.clone() },
|
||||||
|
);
|
||||||
|
let _ = save_profiles(&profiles_mut);
|
||||||
|
} // else: do not overwrite, just connect with provided details
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user