aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/projectstore_cmd.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-04-18 17:31:15 +0200
committerGitHub Enterprise <[email protected]>2024-04-18 17:31:15 +0200
commit93e252c50db8947ea065fb5ea8ad17892ddc37d0 (patch)
tree6e0e95662d7319d439b7629b47686d48679a57f9 /src/zen/cmds/projectstore_cmd.cpp
parentimproved lock file handling (#50) (diff)
downloadarchived-zen-de/safer-oplog-import.tar.xz
archived-zen-de/safer-oplog-import.zip
safer oplog import (#52)de/safer-oplog-import
* reference cache gc update capture * When importing oplogs we now import all attachments first and (optionally clean) write the oplog on success
Diffstat (limited to 'src/zen/cmds/projectstore_cmd.cpp')
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp
index f877a3c51..6591c05cd 100644
--- a/src/zen/cmds/projectstore_cmd.cpp
+++ b/src/zen/cmds/projectstore_cmd.cpp
@@ -1158,25 +1158,12 @@ ImportOplogCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
std::string Url = fmt::format("/prj/{}/oplog/{}", m_ProjectName, m_OplogName);
bool CreateOplog = false;
- if (HttpClient::Response Result = Http.Get(Url, HttpClient::Accept(ZenContentType::kJSON)))
- {
- if (m_Clean)
- {
- ZEN_WARN("Deleting oplog '{}/{}'", m_ProjectName, m_OplogName)
- Result = Http.Delete(Url, HttpClient::Accept(ZenContentType::kJSON));
- if (!Result)
- {
- Result.ThrowError("failed deleting existing oplog"sv);
- return 1;
- }
- CreateOplog = true;
- }
- }
- else if (Result.StatusCode == HttpResponseCode::NotFound)
+ if (HttpClient::Response Result = Http.Get(Url, HttpClient::Accept(ZenContentType::kJSON));
+ Result.StatusCode == HttpResponseCode::NotFound)
{
CreateOplog = true;
}
- else
+ else if (!IsHttpSuccessCode(Result.StatusCode))
{
Result.ThrowError("failed checking oplog"sv);
return 1;
@@ -1211,6 +1198,10 @@ ImportOplogCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
{
Writer.AddBool("ignoremissingattachments"sv, true);
}
+ if (m_Clean)
+ {
+ Writer.AddBool("clean"sv, true);
+ }
if (!m_FileDirectoryPath.empty())
{
Writer.BeginObject("file"sv);