diff options
| author | Dan Engelbrecht <[email protected]> | 2024-11-06 09:24:19 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-11-06 09:24:19 +0100 |
| commit | e5ee966b132c973fb1f2fd52e189305c6786a6bd (patch) | |
| tree | 5db11b38255840b08b4a9fb1ea9bd29ac585c49a /src | |
| parent | Improved oplog import/export progress indicator at commandline (#206) (diff) | |
| download | zen-e5ee966b132c973fb1f2fd52e189305c6786a6bd.tar.xz zen-e5ee966b132c973fb1f2fd52e189305c6786a6bd.zip | |
project details cmd resolve prj oplog (#209)
* auto-resolve project name if only one project exist
* always try to resolve project and oplog name in project-details command
* project-details -> project-op-details
Diffstat (limited to 'src')
| -rw-r--r-- | src/zen/cmds/projectstore_cmd.cpp | 46 | ||||
| -rw-r--r-- | src/zen/cmds/projectstore_cmd.h | 8 | ||||
| -rw-r--r-- | src/zen/zen.cpp | 4 |
3 files changed, 23 insertions, 35 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp index 4e2d5123d..afcf71346 100644 --- a/src/zen/cmds/projectstore_cmd.cpp +++ b/src/zen/cmds/projectstore_cmd.cpp @@ -346,8 +346,15 @@ namespace { if (OptionalProjectName.empty()) { - ZEN_CONSOLE("Available projects at {}: {}", Http.GetBaseUri(), FmtArray(AvailableProjects)); - return {}; + if (AvailableProjects.size() == 1) + { + return AvailableProjects.front(); + } + else + { + ZEN_CONSOLE("Available projects at {}: {}", Http.GetBaseUri(), FmtArray(AvailableProjects)); + return {}; + } } std::vector<std::string> MatchingProjectIds = MatchId(AvailableProjects, OptionalProjectName); @@ -1591,7 +1598,7 @@ ProjectStatsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** ar //////////////////////////// -ProjectDetailsCommand::ProjectDetailsCommand() +ProjectOpDetailsCommand::ProjectOpDetailsCommand() { m_Options.add_options()("h,help", "Print help"); m_Options.add_option("", "u", "hosturl", "Host URL", cxxopts::value(m_HostName)->default_value(""), "<hosturl>"); @@ -1609,12 +1616,12 @@ ProjectDetailsCommand::ProjectDetailsCommand() "<attachmentdetails>"); } -ProjectDetailsCommand::~ProjectDetailsCommand() +ProjectOpDetailsCommand::~ProjectOpDetailsCommand() { } int -ProjectDetailsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) +ProjectOpDetailsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) { ZEN_UNUSED(GlobalOptions); @@ -1632,34 +1639,15 @@ ProjectDetailsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** HttpClient Http(m_HostName); - if (!m_ProjectName.empty()) - { - m_ProjectName = ResolveProject(Http, m_ProjectName); - if (m_ProjectName.empty()) - { - return 1; - } - } - - if (!m_OplogName.empty() || !m_OpId.empty()) + m_ProjectName = ResolveProject(Http, m_ProjectName); + if (m_ProjectName.empty()) { - if (m_ProjectName.empty()) - { - ZEN_ERROR("Provide project name"); - ZEN_CONSOLE("{}", m_Options.help({""}).c_str()); - return 1; - } - m_OplogName = ResolveOplog(Http, m_ProjectName, m_OplogName); - if (m_OplogName.empty()) - { - return 1; - } + return 1; } - if (!m_OpId.empty() && m_OplogName.empty()) + m_OplogName = ResolveOplog(Http, m_ProjectName, m_OplogName); + if (m_OplogName.empty()) { - ZEN_ERROR("Provide project and oplog name"); - ZEN_CONSOLE("{}", m_Options.help({""}).c_str()); return 1; } diff --git a/src/zen/cmds/projectstore_cmd.h b/src/zen/cmds/projectstore_cmd.h index e70254ec5..0e16f946d 100644 --- a/src/zen/cmds/projectstore_cmd.h +++ b/src/zen/cmds/projectstore_cmd.h @@ -199,16 +199,16 @@ private: std::string m_HostName; }; -class ProjectDetailsCommand : public ProjectStoreCommand +class ProjectOpDetailsCommand : public ProjectStoreCommand { public: - ProjectDetailsCommand(); - ~ProjectDetailsCommand(); + ProjectOpDetailsCommand(); + ~ProjectOpDetailsCommand(); virtual int Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override; virtual cxxopts::Options& Options() override { return m_Options; } private: - cxxopts::Options m_Options{"project-details", "Detail info on project store"}; + cxxopts::Options m_Options{"project-op-details", "Detail info on ops inside a project store oplog"}; std::string m_HostName; bool m_Details = false; bool m_OpDetails = false; diff --git a/src/zen/zen.cpp b/src/zen/zen.cpp index eb67649b8..7bf715e01 100644 --- a/src/zen/zen.cpp +++ b/src/zen/zen.cpp @@ -414,7 +414,7 @@ main(int argc, char** argv) OplogMirrorCommand OplogMirrorCmd; PrintCommand PrintCmd; PrintPackageCommand PrintPkgCmd; - ProjectDetailsCommand ProjectDetailsCmd; + ProjectOpDetailsCommand ProjectOpDetailsCmd; ProjectInfoCommand ProjectInfoCmd; ProjectStatsCommand ProjectStatsCmd; PsCommand PsCmd; @@ -468,7 +468,7 @@ main(int argc, char** argv) {"print", &PrintCmd, "Print compact binary object"}, {"printpackage", &PrintPkgCmd, "Print compact binary package"}, {"project-create", &CreateProjectCmd, "Create a project"}, - {"project-details", &ProjectDetailsCmd, "Details on project store"}, + {"project-op-details", &ProjectOpDetailsCmd, "Detail info on ops inside a project store oplog"}, {"project-drop", &ProjectDropCmd, "Drop project or project oplog"}, {"project-info", &ProjectInfoCmd, "Info on project or project oplog"}, {"project-stats", &ProjectStatsCmd, "Stats on project store"}, |