make auto-upgrades more explicit
This commit is contained in:
parent
7dcfbc112f
commit
ae2049abe8
2 changed files with 13 additions and 4 deletions
|
@ -315,17 +315,20 @@ impl Manifest {
|
||||||
self.entries.iter().any(|e| e.account_name.is_empty())
|
self.entries.iter().any(|e| e.account_name.is_empty())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn auto_upgrade(&mut self) -> anyhow::Result<(), ManifestAccountLoadError> {
|
/// Performs auto-upgrades on the manifest. Returns true if any upgrades were performed.
|
||||||
|
pub fn auto_upgrade(&mut self) -> anyhow::Result<bool, ManifestAccountLoadError> {
|
||||||
debug!("Performing auto-upgrade...");
|
debug!("Performing auto-upgrade...");
|
||||||
|
let mut upgraded = false;
|
||||||
if self.is_missing_account_name() {
|
if self.is_missing_account_name() {
|
||||||
debug!("Adding missing account names");
|
debug!("Adding missing account names");
|
||||||
for i in 0..self.entries.len() {
|
for i in 0..self.entries.len() {
|
||||||
let account = self.load_account_by_entry(&self.entries[i].clone())?;
|
let account = self.load_account_by_entry(&self.entries[i].clone())?;
|
||||||
self.entries[i].account_name = account.lock().unwrap().account_name.clone();
|
self.entries[i].account_name = account.lock().unwrap().account_name.clone();
|
||||||
}
|
}
|
||||||
|
upgraded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(upgraded)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
src/main.rs
10
src/main.rs
|
@ -201,8 +201,14 @@ fn run() -> anyhow::Result<()> {
|
||||||
manifest.submit_passkey(passkey);
|
manifest.submit_passkey(passkey);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
match manifest.load_accounts() {
|
match manifest.auto_upgrade() {
|
||||||
Ok(_) => break,
|
Ok(upgraded) => {
|
||||||
|
if upgraded {
|
||||||
|
info!("Manifest auto-upgraded");
|
||||||
|
manifest.save()?;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
},
|
||||||
Err(
|
Err(
|
||||||
accountmanager::ManifestAccountLoadError::MissingPasskey
|
accountmanager::ManifestAccountLoadError::MissingPasskey
|
||||||
| accountmanager::ManifestAccountLoadError::IncorrectPasskey,
|
| accountmanager::ManifestAccountLoadError::IncorrectPasskey,
|
||||||
|
|
Loading…
Reference in a new issue