mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-03 21:29:08 +00:00
Useful for when want the app to behave differently in pyinstaller app scenario with frozen python. And in development scenarios
32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
# Standard Packages
|
|
import argparse
|
|
import pathlib
|
|
|
|
# Internal Packages
|
|
from src.utils.helpers import resolve_absolute_path
|
|
from src.utils.yaml import parse_config_from_file
|
|
|
|
|
|
def cli(args=None):
|
|
# Setup Argument Parser for the Commandline Interface
|
|
parser = argparse.ArgumentParser(description="Start Khoj; A Natural Language Search Engine for your personal Notes, Transactions and Photos")
|
|
parser.add_argument('--config-file', '-c', default='~/.khoj/khoj.yml', type=pathlib.Path, help="YAML file to configure Khoj")
|
|
parser.add_argument('--no-gui', action='store_true', default=False, help="Do not show native desktop GUI. Default: false")
|
|
parser.add_argument('--regenerate', action='store_true', default=False, help="Regenerate model embeddings from source files. Default: false")
|
|
parser.add_argument('--verbose', '-v', action='count', default=0, help="Show verbose conversion logs. Default: 0")
|
|
parser.add_argument('--host', type=str, default='127.0.0.1', help="Host address of the server. Default: 127.0.0.1")
|
|
parser.add_argument('--port', '-p', type=int, default=8000, help="Port of the server. Default: 8000")
|
|
parser.add_argument('--socket', type=pathlib.Path, help="Path to UNIX socket for server. Use to run server behind reverse proxy. Default: /tmp/uvicorn.sock")
|
|
|
|
args = parser.parse_args(args)
|
|
|
|
# Normalize config_file path to absolute path
|
|
args.config_file = resolve_absolute_path(args.config_file)
|
|
|
|
if not args.config_file.exists():
|
|
args.config = None
|
|
else:
|
|
args.config = parse_config_from_file(args.config_file)
|
|
|
|
return args
|