diff options
| author | Ellie Huxtable <ellie@elliehuxtable.com> | 2024-02-02 15:05:07 +0000 |
|---|---|---|
| committer | Ellie Huxtable <ellie@elliehuxtable.com> | 2024-02-02 18:01:09 +0000 |
| commit | c9a453289e2fea97b5ac17e265f99332edcdcd4c (patch) | |
| tree | e51eb1f7d2fd3b44fabf2c1260802232fa0367b2 /atuin-client/src/api_client.rs | |
| parent | feat: failure to decrypt history = failure to sync (diff) | |
| download | atuin-c9a453289e2fea97b5ac17e265f99332edcdcd4c.zip | |
feat: add `store push --force`
This will
1. Wipe the remote store
2. Upload all of the local store to remote
Imagine the scenario where you end up with some mixed keys locally :(
You confirm this with
```
atuin store verify
```
You then fix it locally with
```
atuin store purge
```
Ensure that your local changes are reflected remotely with
```
atuin store push --force
```
and then (another PR, coming soon), update all other hosts with
```
atuin store pull --force
```
Diffstat (limited to '')
| -rw-r--r-- | atuin-client/src/api_client.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/atuin-client/src/api_client.rs b/atuin-client/src/api_client.rs index d53c9a36..709627b6 100644 --- a/atuin-client/src/api_client.rs +++ b/atuin-client/src/api_client.rs @@ -287,6 +287,17 @@ impl<'a> Client<'a> { Ok(()) } + pub async fn delete_store(&self) -> Result<()> { + let url = format!("{}/api/v0/store", self.sync_addr); + let url = Url::parse(url.as_str())?; + + let resp = self.client.delete(url).send().await?; + + handle_resp_error(resp).await?; + + Ok(()) + } + pub async fn post_records(&self, records: &[Record<EncryptedData>]) -> Result<()> { let url = format!("{}/api/v0/record", self.sync_addr); let url = Url::parse(url.as_str())?; |
