1919from .parse_time import parse_time_before_now , UNITS_STR , ParseError
2020from .config import apply_config_from_file
2121from .tracking import disable_tracking
22+ from . import __version__
2223
2324
2425LOG_FORMAT = "[%(asctime)s] %(levelname)s - %(message)s"
@@ -76,7 +77,7 @@ def __init__(self, **kwargs):
7677 self .indent_increment = 6
7778
7879 def write_usage (self , prog : str , args : str = "" , prefix : Optional [str ] = None ) -> None :
79- self .write ("data-diff - efficiently diff rows across database tables.\n \n " )
80+ self .write (f "data-diff v { __version__ } - efficiently diff rows across database tables.\n \n " )
8081 self .write ("Usage:\n " )
8182 self .write (f" * In-db diff: { prog } <database1> <table1> <table2> [OPTIONS]\n " )
8283 self .write (f" * Cross-db diff: { prog } <database1> <table1> <database2> <table2> [OPTIONS]\n " )
@@ -140,6 +141,7 @@ def write_usage(self, prog: str, args: str = "", prefix: Optional[str] = None) -
140141@click .option ("-d" , "--debug" , is_flag = True , help = "Print debug info" )
141142@click .option ("--json" , "json_output" , is_flag = True , help = "Print JSONL output for machine readability" )
142143@click .option ("-v" , "--verbose" , is_flag = True , help = "Print extra info" )
144+ @click .option ("--version" , is_flag = True , help = "Print version info and exit" )
143145@click .option ("-i" , "--interactive" , is_flag = True , help = "Confirm queries, implies --debug" )
144146@click .option ("--no-tracking" , is_flag = True , help = "data-diff sends home anonymous usage data. Use this to disable it." )
145147@click .option (
@@ -233,6 +235,7 @@ def _main(
233235 stats ,
234236 debug ,
235237 verbose ,
238+ version ,
236239 interactive ,
237240 no_tracking ,
238241 threads ,
@@ -248,6 +251,9 @@ def _main(
248251 threads2 = None ,
249252 __conf__ = None ,
250253):
254+ if version :
255+ print (f"v{ __version__ } " )
256+ return
251257
252258 if no_tracking :
253259 disable_tracking ()
0 commit comments