diff --git a/src/khoj/utils/cli.py b/src/khoj/utils/cli.py index 0f3c5555..f5c93bb1 100644 --- a/src/khoj/utils/cli.py +++ b/src/khoj/utils/cli.py @@ -5,7 +5,7 @@ from importlib.metadata import version # Internal Packages from khoj.utils.helpers import resolve_absolute_path -from khoj.utils.yaml import parse_config_from_file +from khoj.utils.yaml import load_config_from_file, parse_config_from_file, save_config_to_file def cli(args=None): @@ -34,9 +34,10 @@ def cli(args=None): args = parser.parse_args(args) + args.version_no = version("khoj-assistant") if args.version: # Show version of khoj installed and exit - print(version("khoj-assistant")) + print(args.version_no) exit(0) # Normalize config_file path to absolute path @@ -45,6 +46,16 @@ def cli(args=None): if not args.config_file.exists(): args.config = None else: + migrate_config(args) args.config = parse_config_from_file(args.config_file) return args + + +def migrate_config(args): + raw_config = load_config_from_file(args.config_file) + + # Add version to khoj config schema + if "version" not in raw_config: + raw_config["version"] = args.version_no + save_config_to_file(raw_config, args.config_file) diff --git a/src/khoj/utils/rawconfig.py b/src/khoj/utils/rawconfig.py index 043576f5..d3c9a4ea 100644 --- a/src/khoj/utils/rawconfig.py +++ b/src/khoj/utils/rawconfig.py @@ -123,6 +123,7 @@ class FullConfig(ConfigBase): search_type: Optional[SearchConfig] = None processor: Optional[ProcessorConfig] = None app: Optional[AppConfig] = AppConfig(should_log_telemetry=True) + version: Optional[str] = None class SearchResponse(ConfigBase):