aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-02-23 11:09:11 +0100
committerGitHub Enterprise <[email protected]>2026-02-23 11:09:11 +0100
commit01445315564ab527566ec200e0182d8968a80d6f (patch)
tree260c6f26b39ca9e9b28f4dfdbbdadaddc2a5022d
parentimplemented base64 decoding (#777) (diff)
downloadzen-01445315564ab527566ec200e0182d8968a80d6f.tar.xz
zen-01445315564ab527566ec200e0182d8968a80d6f.zip
changed command names and descriptions to use class members instead of string literals in zen.cpp (#776)
-rw-r--r--src/zen/cmds/admin_cmd.h40
-rw-r--r--src/zen/cmds/bench_cmd.h5
-rw-r--r--src/zen/cmds/cache_cmd.h20
-rw-r--r--src/zen/cmds/copy_cmd.h5
-rw-r--r--src/zen/cmds/dedup_cmd.h5
-rw-r--r--src/zen/cmds/info_cmd.h5
-rw-r--r--src/zen/cmds/print_cmd.h10
-rw-r--r--src/zen/cmds/projectstore_cmd.h58
-rw-r--r--src/zen/cmds/rpcreplay_cmd.h15
-rw-r--r--src/zen/cmds/run_cmd.h5
-rw-r--r--src/zen/cmds/serve_cmd.h5
-rw-r--r--src/zen/cmds/status_cmd.h5
-rw-r--r--src/zen/cmds/top_cmd.h10
-rw-r--r--src/zen/cmds/trace_cmd.h7
-rw-r--r--src/zen/cmds/up_cmd.h15
-rw-r--r--src/zen/cmds/vfs_cmd.h5
-rw-r--r--src/zen/zen.cpp86
17 files changed, 211 insertions, 90 deletions
diff --git a/src/zen/cmds/admin_cmd.h b/src/zen/cmds/admin_cmd.h
index 87ef8091b..83bcf8893 100644
--- a/src/zen/cmds/admin_cmd.h
+++ b/src/zen/cmds/admin_cmd.h
@@ -13,6 +13,9 @@ namespace zen {
class ScrubCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "scrub";
+ static constexpr char Description[] = "Scrub zen storage (verify data integrity)";
+
ScrubCommand();
~ScrubCommand();
@@ -20,7 +23,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"scrub", "Scrub zen storage"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_DryRun = false;
bool m_NoGc = false;
@@ -33,6 +36,9 @@ private:
class GcCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "gc";
+ static constexpr char Description[] = "Garbage collect zen storage";
+
GcCommand();
~GcCommand();
@@ -40,7 +46,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"gc", "Garbage collect zen storage"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_SmallObjects{false};
bool m_SkipCid{false};
@@ -62,6 +68,9 @@ private:
class GcStatusCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "gc-status";
+ static constexpr char Description[] = "Garbage collect zen storage status check";
+
GcStatusCommand();
~GcStatusCommand();
@@ -69,7 +78,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"gc-status", "Garbage collect zen storage status check"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_Details = false;
};
@@ -77,6 +86,9 @@ private:
class GcStopCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "gc-stop";
+ static constexpr char Description[] = "Request cancel of running garbage collection in zen storage";
+
GcStopCommand();
~GcStopCommand();
@@ -84,7 +96,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"gc-stop", "Request cancel of running garbage collection in zen storage"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
@@ -93,6 +105,9 @@ private:
class JobCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "jobs";
+ static constexpr char Description[] = "Show/cancel zen background jobs";
+
JobCommand();
~JobCommand();
@@ -100,7 +115,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"jobs", "Show/cancel zen background jobs"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::uint64_t m_JobId = 0;
bool m_Cancel = 0;
@@ -111,6 +126,9 @@ private:
class LoggingCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "logs";
+ static constexpr char Description[] = "Show/control zen logging";
+
LoggingCommand();
~LoggingCommand();
@@ -118,7 +136,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"logs", "Show/control zen logging"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_CacheWriteLog;
std::string m_CacheAccessLog;
@@ -133,6 +151,9 @@ private:
class FlushCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "flush";
+ static constexpr char Description[] = "Flush storage";
+
FlushCommand();
~FlushCommand();
@@ -140,7 +161,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"flush", "Flush zen storage"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
@@ -149,6 +170,9 @@ private:
class CopyStateCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "copy-state";
+ static constexpr char Description[] = "Copy zen server disk state";
+
CopyStateCommand();
~CopyStateCommand();
@@ -156,7 +180,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"copy-state", "Copy zen server disk state"};
+ cxxopts::Options m_Options{Name, Description};
std::filesystem::path m_DataPath;
std::filesystem::path m_TargetPath;
bool m_SkipLogs = false;
diff --git a/src/zen/cmds/bench_cmd.h b/src/zen/cmds/bench_cmd.h
index ed123be75..7fbf85340 100644
--- a/src/zen/cmds/bench_cmd.h
+++ b/src/zen/cmds/bench_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class BenchCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "bench";
+ static constexpr char Description[] = "Utility command for benchmarking";
+
BenchCommand();
~BenchCommand();
@@ -17,7 +20,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"bench", "Benchmarking utility command"};
+ cxxopts::Options m_Options{Name, Description};
bool m_PurgeStandbyLists = false;
bool m_SingleProcess = false;
};
diff --git a/src/zen/cmds/cache_cmd.h b/src/zen/cmds/cache_cmd.h
index 4dc05bbdc..4f5b90f4d 100644
--- a/src/zen/cmds/cache_cmd.h
+++ b/src/zen/cmds/cache_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class DropCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "drop";
+ static constexpr char Description[] = "Drop cache namespace or bucket";
+
DropCommand();
~DropCommand();
@@ -16,7 +19,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"drop", "Drop cache namespace or bucket"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_NamespaceName;
std::string m_BucketName;
@@ -25,13 +28,16 @@ private:
class CacheInfoCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "cache-info";
+ static constexpr char Description[] = "Info on cache, namespace or bucket";
+
CacheInfoCommand();
~CacheInfoCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"cache-info", "Info on cache, namespace or bucket"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_NamespaceName;
std::string m_SizeInfoBucketNames;
@@ -42,26 +48,32 @@ private:
class CacheStatsCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "cache-stats";
+ static constexpr char Description[] = "Stats on cache";
+
CacheStatsCommand();
~CacheStatsCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"cache-stats", "Stats info on cache"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
class CacheDetailsCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "cache-details";
+ static constexpr char Description[] = "Details on cache";
+
CacheDetailsCommand();
~CacheDetailsCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"cache-details", "Detailed info on cache"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_CSV = false;
bool m_Details = false;
diff --git a/src/zen/cmds/copy_cmd.h b/src/zen/cmds/copy_cmd.h
index e1a5dcb82..757a8e691 100644
--- a/src/zen/cmds/copy_cmd.h
+++ b/src/zen/cmds/copy_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class CopyCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "copy";
+ static constexpr char Description[] = "Copy file(s)";
+
CopyCommand();
~CopyCommand();
@@ -19,7 +22,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"copy", "Copy files efficiently"};
+ cxxopts::Options m_Options{Name, Description};
std::filesystem::path m_CopySource;
std::filesystem::path m_CopyTarget;
bool m_NoClone = false;
diff --git a/src/zen/cmds/dedup_cmd.h b/src/zen/cmds/dedup_cmd.h
index 5b8387dd2..835b35e92 100644
--- a/src/zen/cmds/dedup_cmd.h
+++ b/src/zen/cmds/dedup_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class DedupCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "dedup";
+ static constexpr char Description[] = "Dedup files";
+
DedupCommand();
~DedupCommand();
@@ -19,7 +22,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"dedup", "Deduplicate files"};
+ cxxopts::Options m_Options{Name, Description};
std::vector<std::string> m_Positional;
std::filesystem::path m_DedupSource;
std::filesystem::path m_DedupTarget;
diff --git a/src/zen/cmds/info_cmd.h b/src/zen/cmds/info_cmd.h
index 231565bfd..dc108b8a2 100644
--- a/src/zen/cmds/info_cmd.h
+++ b/src/zen/cmds/info_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class InfoCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "info";
+ static constexpr char Description[] = "Show high level Zen server information";
+
InfoCommand();
~InfoCommand();
@@ -17,7 +20,7 @@ public:
// virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"info", "Show high level zen store information"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
diff --git a/src/zen/cmds/print_cmd.h b/src/zen/cmds/print_cmd.h
index 6c1529b7c..f4a97e218 100644
--- a/src/zen/cmds/print_cmd.h
+++ b/src/zen/cmds/print_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class PrintCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "print";
+ static constexpr char Description[] = "Print compact binary object";
+
PrintCommand();
~PrintCommand();
@@ -19,7 +22,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"print", "Print compact binary object"};
+ cxxopts::Options m_Options{Name, Description};
std::filesystem::path m_Filename;
bool m_ShowCbObjectTypeInfo = false;
};
@@ -29,6 +32,9 @@ private:
class PrintPackageCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "printpackage";
+ static constexpr char Description[] = "Print compact binary package";
+
PrintPackageCommand();
~PrintPackageCommand();
@@ -37,7 +43,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"printpkg", "Print compact binary package"};
+ cxxopts::Options m_Options{Name, Description};
std::filesystem::path m_Filename;
bool m_ShowCbObjectTypeInfo = false;
};
diff --git a/src/zen/cmds/projectstore_cmd.h b/src/zen/cmds/projectstore_cmd.h
index 56ef858f5..e415b41b7 100644
--- a/src/zen/cmds/projectstore_cmd.h
+++ b/src/zen/cmds/projectstore_cmd.h
@@ -16,6 +16,9 @@ class ProjectStoreCommand : public ZenCmdBase
class DropProjectCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "project-drop";
+ static constexpr char Description[] = "Drop project or project oplog";
+
DropProjectCommand();
~DropProjectCommand();
@@ -23,7 +26,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"project-drop", "Drop project or project oplog"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -33,13 +36,16 @@ private:
class ProjectInfoCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "project-info";
+ static constexpr char Description[] = "Info on project or project oplog";
+
ProjectInfoCommand();
~ProjectInfoCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"project-info", "Info on project or project oplog"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -48,6 +54,9 @@ private:
class CreateProjectCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "project-create";
+ static constexpr char Description[] = "Create a project";
+
CreateProjectCommand();
~CreateProjectCommand();
@@ -55,7 +64,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"project-create", "Create project, the project must not already exist."};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectId;
std::string m_RootDir;
@@ -68,6 +77,9 @@ private:
class CreateOplogCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-create";
+ static constexpr char Description[] = "Create a project oplog";
+
CreateOplogCommand();
~CreateOplogCommand();
@@ -75,7 +87,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-create", "Create oplog in an existing project, the oplog must not already exist."};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectId;
std::string m_OplogId;
@@ -86,6 +98,9 @@ private:
class ExportOplogCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-export";
+ static constexpr char Description[] = "Export project store oplog";
+
ExportOplogCommand();
~ExportOplogCommand();
@@ -93,8 +108,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-export",
- "Export project store oplog to cloud (--cloud), file system (--file) or other Zen instance (--zen)"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -145,6 +159,9 @@ private:
class ImportOplogCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-import";
+ static constexpr char Description[] = "Import project store oplog";
+
ImportOplogCommand();
~ImportOplogCommand();
@@ -152,8 +169,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-import",
- "Import project store oplog from cloud (--cloud), file system (--file) or other Zen instance (--zen)"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -198,14 +214,16 @@ private:
class SnapshotOplogCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-snapshot";
+ static constexpr char Description[] = "Snapshot project store oplog";
+
SnapshotOplogCommand();
~SnapshotOplogCommand();
-
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-snapshot", "Snapshot external file references in project store oplog into zen"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -214,26 +232,32 @@ private:
class ProjectStatsCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "project-stats";
+ static constexpr char Description[] = "Stats on project store";
+
ProjectStatsCommand();
~ProjectStatsCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"project-stats", "Stats info on project store"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
class ProjectOpDetailsCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "project-op-details";
+ static constexpr char Description[] = "Detail info on ops inside a project store oplog";
+
ProjectOpDetailsCommand();
~ProjectOpDetailsCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"project-op-details", "Detail info on ops inside a project store oplog"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_Details = false;
bool m_OpDetails = false;
@@ -247,13 +271,16 @@ private:
class OplogMirrorCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-mirror";
+ static constexpr char Description[] = "Mirror project store oplog to file system";
+
OplogMirrorCommand();
~OplogMirrorCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-mirror", "Mirror oplog to file system"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
@@ -268,13 +295,16 @@ private:
class OplogValidateCommand : public ProjectStoreCommand
{
public:
+ static constexpr char Name[] = "oplog-validate";
+ static constexpr char Description[] = "Validate oplog for missing references";
+
OplogValidateCommand();
~OplogValidateCommand();
virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override;
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"oplog-validate", "Validate oplog for missing references"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
diff --git a/src/zen/cmds/rpcreplay_cmd.h b/src/zen/cmds/rpcreplay_cmd.h
index a6363b614..332a3126c 100644
--- a/src/zen/cmds/rpcreplay_cmd.h
+++ b/src/zen/cmds/rpcreplay_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class RpcStartRecordingCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "rpc-record-start";
+ static constexpr char Description[] = "Starts recording of cache rpc requests on a host";
+
RpcStartRecordingCommand();
~RpcStartRecordingCommand();
@@ -16,7 +19,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"rpc-record-start", "Starts recording of cache rpc requests on a host"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_RecordingPath;
};
@@ -24,6 +27,9 @@ private:
class RpcStopRecordingCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "rpc-record-stop";
+ static constexpr char Description[] = "Stops recording of cache rpc requests on a host";
+
RpcStopRecordingCommand();
~RpcStopRecordingCommand();
@@ -31,13 +37,16 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"rpc-record-stop", "Stops recording of cache rpc requests on a host"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
};
class RpcReplayCommand : public CacheStoreCommand
{
public:
+ static constexpr char Name[] = "rpc-record-replay";
+ static constexpr char Description[] = "Replays a previously recorded session of rpc requests";
+
RpcReplayCommand();
~RpcReplayCommand();
@@ -45,7 +54,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"rpc-record-replay", "Replays a previously recorded session of cache rpc requests to a target host"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_RecordingPath;
bool m_OnHost = false;
diff --git a/src/zen/cmds/run_cmd.h b/src/zen/cmds/run_cmd.h
index 570a2e63a..300c08c5b 100644
--- a/src/zen/cmds/run_cmd.h
+++ b/src/zen/cmds/run_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class RunCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "run";
+ static constexpr char Description[] = "Run command with special options";
+
RunCommand();
~RunCommand();
@@ -17,7 +20,7 @@ public:
virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; }
private:
- cxxopts::Options m_Options{"run", "Run executable"};
+ cxxopts::Options m_Options{Name, Description};
int m_RunCount = 0;
int m_RunTime = -1;
std::string m_BaseDirectory;
diff --git a/src/zen/cmds/serve_cmd.h b/src/zen/cmds/serve_cmd.h
index ac74981f2..22f430948 100644
--- a/src/zen/cmds/serve_cmd.h
+++ b/src/zen/cmds/serve_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class ServeCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "serve";
+ static constexpr char Description[] = "Serve files from a directory";
+
ServeCommand();
~ServeCommand();
@@ -18,7 +21,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"serve", "Serve files from a tree"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
std::string m_ProjectName;
std::string m_OplogName;
diff --git a/src/zen/cmds/status_cmd.h b/src/zen/cmds/status_cmd.h
index dc103a196..df5df3066 100644
--- a/src/zen/cmds/status_cmd.h
+++ b/src/zen/cmds/status_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class StatusCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "status";
+ static constexpr char Description[] = "Show zen status";
+
StatusCommand();
~StatusCommand();
@@ -20,7 +23,7 @@ public:
private:
int GetLockFileEffectivePort() const;
- cxxopts::Options m_Options{"status", "Show zen status"};
+ cxxopts::Options m_Options{Name, Description};
uint16_t m_Port = 0;
std::filesystem::path m_DataDir;
};
diff --git a/src/zen/cmds/top_cmd.h b/src/zen/cmds/top_cmd.h
index 74167ecfd..aeb196558 100644
--- a/src/zen/cmds/top_cmd.h
+++ b/src/zen/cmds/top_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class TopCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "top";
+ static constexpr char Description[] = "Monitor zen server activity";
+
TopCommand();
~TopCommand();
@@ -16,12 +19,15 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"top", "Show dev UI"};
+ cxxopts::Options m_Options{Name, Description};
};
class PsCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "ps";
+ static constexpr char Description[] = "Enumerate running zen server instances";
+
PsCommand();
~PsCommand();
@@ -29,7 +35,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"ps", "Enumerate running Zen server instances"};
+ cxxopts::Options m_Options{Name, Description};
};
} // namespace zen
diff --git a/src/zen/cmds/trace_cmd.h b/src/zen/cmds/trace_cmd.h
index a6c9742b7..6eb0ba22b 100644
--- a/src/zen/cmds/trace_cmd.h
+++ b/src/zen/cmds/trace_cmd.h
@@ -6,11 +6,12 @@
namespace zen {
-/** Scrub storage
- */
class TraceCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "trace";
+ static constexpr char Description[] = "Control zen realtime tracing";
+
TraceCommand();
~TraceCommand();
@@ -18,7 +19,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"trace", "Control zen realtime tracing"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_HostName;
bool m_Stop = false;
std::string m_TraceHost;
diff --git a/src/zen/cmds/up_cmd.h b/src/zen/cmds/up_cmd.h
index 2e822d5fc..270db7f88 100644
--- a/src/zen/cmds/up_cmd.h
+++ b/src/zen/cmds/up_cmd.h
@@ -11,6 +11,9 @@ namespace zen {
class UpCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "up";
+ static constexpr char Description[] = "Bring zen server up";
+
UpCommand();
~UpCommand();
@@ -18,7 +21,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"up", "Bring up zen service"};
+ cxxopts::Options m_Options{Name, Description};
uint16_t m_Port = 0;
bool m_ShowConsole = false;
bool m_ShowLog = false;
@@ -28,6 +31,9 @@ private:
class AttachCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "attach";
+ static constexpr char Description[] = "Add a sponsor process to a running zen service";
+
AttachCommand();
~AttachCommand();
@@ -35,7 +41,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"attach", "Add a sponsor process to a running zen service"};
+ cxxopts::Options m_Options{Name, Description};
uint16_t m_Port = 0;
int m_OwnerPid = 0;
std::filesystem::path m_DataDir;
@@ -44,6 +50,9 @@ private:
class DownCommand : public ZenCmdBase
{
public:
+ static constexpr char Name[] = "down";
+ static constexpr char Description[] = "Bring zen server down";
+
DownCommand();
~DownCommand();
@@ -51,7 +60,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"down", "Bring down zen service"};
+ cxxopts::Options m_Options{Name, Description};
uint16_t m_Port = 0;
bool m_ForceTerminate = false;
std::filesystem::path m_ProgramBaseDir;
diff --git a/src/zen/cmds/vfs_cmd.h b/src/zen/cmds/vfs_cmd.h
index 5deaa02fa..9009c774b 100644
--- a/src/zen/cmds/vfs_cmd.h
+++ b/src/zen/cmds/vfs_cmd.h
@@ -9,6 +9,9 @@ namespace zen {
class VfsCommand : public StorageCommand
{
public:
+ static constexpr char Name[] = "vfs";
+ static constexpr char Description[] = "Manage virtual file system";
+
VfsCommand();
~VfsCommand();
@@ -16,7 +19,7 @@ public:
virtual cxxopts::Options& Options() override { return m_Options; }
private:
- cxxopts::Options m_Options{"vfs", "Manage virtual file system"};
+ cxxopts::Options m_Options{Name, Description};
std::string m_Verb;
std::string m_HostName;
diff --git a/src/zen/zen.cpp b/src/zen/zen.cpp
index 018f77738..bdc2b4003 100644
--- a/src/zen/zen.cpp
+++ b/src/zen/zen.cpp
@@ -379,56 +379,56 @@ main(int argc, char** argv)
const char* CmdSummary;
} Commands[] = {
// clang-format off
- {"attach", &AttachCmd, "Add a sponsor process to a running zen service"},
- {"bench", &BenchCmd, "Utility command for benchmarking"},
- {BuildsCommand::Name, &BuildsCmd, BuildsCommand::Description},
- {"cache-details", &CacheDetailsCmd, "Details on cache"},
- {"cache-info", &CacheInfoCmd, "Info on cache, namespace or bucket"},
+ {AttachCommand::Name, &AttachCmd, AttachCommand::Description},
+ {BenchCommand::Name, &BenchCmd, BenchCommand::Description},
+ {BuildsCommand::Name, &BuildsCmd, BuildsCommand::Description},
+ {CacheDetailsCommand::Name, &CacheDetailsCmd, CacheDetailsCommand::Description},
+ {CacheInfoCommand::Name, &CacheInfoCmd, CacheInfoCommand::Description},
{CacheGetCommand::Name, &CacheGetCmd, CacheGetCommand::Description},
{CacheGenerateCommand::Name, &CacheGenerateCmd, CacheGenerateCommand::Description},
- {"cache-stats", &CacheStatsCmd, "Stats on cache"},
- {"copy", &CopyCmd, "Copy file(s)"},
- {"copy-state", &CopyStateCmd, "Copy zen server disk state"},
- {"dedup", &DedupCmd, "Dedup files"},
- {"down", &DownCmd, "Bring zen server down"},
- {"drop", &DropCmd, "Drop cache namespace or bucket"},
+ {CacheStatsCommand::Name, &CacheStatsCmd, CacheStatsCommand::Description},
+ {CopyCommand::Name, &CopyCmd, CopyCommand::Description},
+ {CopyStateCommand::Name, &CopyStateCmd, CopyStateCommand::Description},
+ {DedupCommand::Name, &DedupCmd, DedupCommand::Description},
+ {DownCommand::Name, &DownCmd, DownCommand::Description},
+ {DropCommand::Name, &DropCmd, DropCommand::Description},
#if ZEN_WITH_COMPUTE_SERVICES
{ExecCommand::Name, &ExecCmd, ExecCommand::Description},
#endif
- {"gc-status", &GcStatusCmd, "Garbage collect zen storage status check"},
- {"gc-stop", &GcStopCmd, "Request cancel of running garbage collection in zen storage"},
- {"gc", &GcCmd, "Garbage collect zen storage"},
- {"info", &InfoCmd, "Show high level Zen server information"},
- {"jobs", &JobCmd, "Show/cancel zen background jobs"},
- {"logs", &LoggingCmd, "Show/control zen logging"},
- {"oplog-create", &CreateOplogCmd, "Create a project oplog"},
- {"oplog-export", &ExportOplogCmd, "Export project store oplog"},
- {"oplog-import", &ImportOplogCmd, "Import project store oplog"},
- {"oplog-mirror", &OplogMirrorCmd, "Mirror project store oplog to file system"},
- {"oplog-snapshot", &SnapshotOplogCmd, "Snapshot project store oplog"},
+ {GcStatusCommand::Name, &GcStatusCmd, GcStatusCommand::Description},
+ {GcStopCommand::Name, &GcStopCmd, GcStopCommand::Description},
+ {GcCommand::Name, &GcCmd, GcCommand::Description},
+ {InfoCommand::Name, &InfoCmd, InfoCommand::Description},
+ {JobCommand::Name, &JobCmd, JobCommand::Description},
+ {LoggingCommand::Name, &LoggingCmd, LoggingCommand::Description},
+ {CreateOplogCommand::Name, &CreateOplogCmd, CreateOplogCommand::Description},
+ {ExportOplogCommand::Name, &ExportOplogCmd, ExportOplogCommand::Description},
+ {ImportOplogCommand::Name, &ImportOplogCmd, ImportOplogCommand::Description},
+ {OplogMirrorCommand::Name, &OplogMirrorCmd, OplogMirrorCommand::Description},
+ {SnapshotOplogCommand::Name, &SnapshotOplogCmd, SnapshotOplogCommand::Description},
{OplogDownloadCommand::Name, &OplogDownload, OplogDownloadCommand::Description},
- {"oplog-validate", &OplogValidateCmd, "Validate oplog for missing references"},
- {"print", &PrintCmd, "Print compact binary object"},
- {"printpackage", &PrintPkgCmd, "Print compact binary package"},
- {"project-create", &CreateProjectCmd, "Create a project"},
- {"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"},
- {"ps", &PsCmd, "Enumerate running zen server instances"},
- {"rpc-record-replay", &RpcReplayCmd, "Replays a previously recorded session of rpc requests"},
- {"rpc-record-start", &RpcStartRecordingCmd, "Starts recording of cache rpc requests on a host"},
- {"rpc-record-stop", &RpcStopRecordingCmd, "Stops recording of cache rpc requests on a host"},
- {"run", &RunCmd, "Run command with special options"},
- {"scrub", &ScrubCmd, "Scrub zen storage (verify data integrity)"},
- {"serve", &ServeCmd, "Serve files from a directory"},
- {"status", &StatusCmd, "Show zen status"},
- {"top", &TopCmd, "Monitor zen server activity"},
- {"trace", &TraceCmd, "Control zen realtime tracing"},
- {"up", &UpCmd, "Bring zen server up"},
+ {OplogValidateCommand::Name, &OplogValidateCmd, OplogValidateCommand::Description},
+ {PrintCommand::Name, &PrintCmd, PrintCommand::Description},
+ {PrintPackageCommand::Name, &PrintPkgCmd, PrintPackageCommand::Description},
+ {CreateProjectCommand::Name, &CreateProjectCmd, CreateProjectCommand::Description},
+ {ProjectOpDetailsCommand::Name, &ProjectOpDetailsCmd, ProjectOpDetailsCommand::Description},
+ {DropProjectCommand::Name, &ProjectDropCmd, DropProjectCommand::Description},
+ {ProjectInfoCommand::Name, &ProjectInfoCmd, ProjectInfoCommand::Description},
+ {ProjectStatsCommand::Name, &ProjectStatsCmd, ProjectStatsCommand::Description},
+ {PsCommand::Name, &PsCmd, PsCommand::Description},
+ {RpcReplayCommand::Name, &RpcReplayCmd, RpcReplayCommand::Description},
+ {RpcStartRecordingCommand::Name, &RpcStartRecordingCmd, RpcStartRecordingCommand::Description},
+ {RpcStopRecordingCommand::Name, &RpcStopRecordingCmd, RpcStopRecordingCommand::Description},
+ {RunCommand::Name, &RunCmd, RunCommand::Description},
+ {ScrubCommand::Name, &ScrubCmd, ScrubCommand::Description},
+ {ServeCommand::Name, &ServeCmd, ServeCommand::Description},
+ {StatusCommand::Name, &StatusCmd, StatusCommand::Description},
+ {TopCommand::Name, &TopCmd, TopCommand::Description},
+ {TraceCommand::Name, &TraceCmd, TraceCommand::Description},
+ {UpCommand::Name, &UpCmd, UpCommand::Description},
{VersionCommand::Name, &VersionCmd, VersionCommand::Description},
- {"vfs", &VfsCmd, "Manage virtual file system"},
- {"flush", &FlushCmd, "Flush storage"},
+ {VfsCommand::Name, &VfsCmd, VfsCommand::Description},
+ {FlushCommand::Name, &FlushCmd, FlushCommand::Description},
{WipeCommand::Name, &WipeCmd, WipeCommand::Description},
{WorkspaceCommand::Name, &WorkspaceCmd, WorkspaceCommand::Description},
{WorkspaceShareCommand::Name, &WorkspaceShareCmd, WorkspaceShareCommand::Description},