#!/usr/bin/env python3 """ctxd module entry point — CLI when args given, daemon otherwise.""" import sys if len(sys.argv) > 1 and sys.argv[1] in ('init', 'serve', 'project-list', 'project-create', 'read', 'cat', 'edit', 'search', 'sync', 'audit', 'user-list', 'user-create', 'import-vault', 'user-set-password', 'oauth-client-create', 'oauth-client-list', 'oauth-client-revoke', 'file-list', 'file-read'): from ctxd.cli import cli_entry cli_entry() else: from ctxd.config import CtxConfig from ctxd.server import serve_sync cfg = CtxConfig.from_home() # When using PostgreSQL, the DB is external — skip the file check. # When using SQLite, verify the db file exists. if not cfg.use_postgres and not cfg.db_path.exists(): print("Not initialized. Run 'ctx init' first.", file=sys.stderr) sys.exit(1) serve_sync(cfg)