Skip to content

Commit 71f446f

Browse files
authored
Added version argument (#197)
1 parent e99cf76 commit 71f446f

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

mysql_ch_replicator/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1+
import importlib.metadata
2+
13
from .main import main
4+
5+
try:
6+
__version__ = importlib.metadata.version("mysql-ch-replicator")
7+
except importlib.metadata.PackageNotFoundError:
8+
__version__ = "unknown" # fallback version

mysql_ch_replicator/main.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import sys
77
import os
88

9+
import importlib.metadata
10+
911
from .config import Settings
1012
from .db_replicator import DbReplicator
1113
from .binlog_replicator import BinlogReplicator
@@ -145,11 +147,22 @@ def run_all(args, config: Settings):
145147

146148

147149
def main():
150+
# Get version information
151+
try:
152+
version = importlib.metadata.version("mysql-ch-replicator")
153+
except importlib.metadata.PackageNotFoundError:
154+
version = "unknown" # fallback version
155+
148156
parser = argparse.ArgumentParser()
157+
parser.add_argument(
158+
"--version", action="version", version=f"mysql-ch-replicator {version}"
159+
)
149160
parser.add_argument(
150161
"mode", help="run mode",
151162
type=str,
152-
choices=["run_all", "binlog_replicator", "db_replicator", "monitoring", "db_optimizer"])
163+
choices=["run_all", "binlog_replicator", "db_replicator", "monitoring", "db_optimizer"],
164+
nargs="?"
165+
)
153166
parser.add_argument("--config", help="config file path", default='config.yaml', type=str)
154167
parser.add_argument("--db", help="source database(s) name", type=str)
155168
parser.add_argument("--target_db", help="target database(s) name, if not set will be same as source", type=str)
@@ -176,6 +189,11 @@ def main():
176189
)
177190
args = parser.parse_args()
178191

192+
# If no mode is provided, show help
193+
if not args.mode:
194+
parser.print_help()
195+
return
196+
179197
config = Settings()
180198
config.load(args.config)
181199
if args.mode == 'binlog_replicator':

0 commit comments

Comments
 (0)