mirror of
https://github.com/usestrix/strix.git
synced 2026-08-20 18:38:57 +02:00
refactor: simplify --config implementation to reuse existing config system
- Reuse apply_saved() instead of custom override logic - Add force parameter to override existing env vars - Move validation to utils.py - Prevent saving when using custom config (one-time override) - Fix: don't modify ~/.strix/cli-config.json when --config is used Co-Authored-By: FeedClogger <feedclogger@users.noreply.github.com>
This commit is contained in:
committed by
Ahmed Allam
co-authored by
FeedClogger
parent
2f58b02218
commit
b453a96cae
@@ -1,4 +1,5 @@
|
||||
import ipaddress
|
||||
import json
|
||||
import re
|
||||
import secrets
|
||||
import shutil
|
||||
@@ -789,3 +790,33 @@ def process_pull_line(
|
||||
def validate_llm_response(response: Any) -> None:
|
||||
if not response or not response.choices or not response.choices[0].message.content:
|
||||
raise RuntimeError("Invalid response from LLM")
|
||||
|
||||
|
||||
def validate_config_file(config_path: str) -> Path:
|
||||
console = Console()
|
||||
path = Path(config_path)
|
||||
|
||||
if not path.exists():
|
||||
console.print(f"[bold red]Error:[/] Config file not found: {config_path}")
|
||||
sys.exit(1)
|
||||
|
||||
if path.suffix != ".json":
|
||||
console.print("[bold red]Error:[/] Config file must be a .json file")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
with path.open("r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
except json.JSONDecodeError as e:
|
||||
console.print(f"[bold red]Error:[/] Invalid JSON in config file: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
if not isinstance(data, dict):
|
||||
console.print("[bold red]Error:[/] Config file must contain a JSON object")
|
||||
sys.exit(1)
|
||||
|
||||
if "env" not in data or not isinstance(data.get("env"), dict):
|
||||
console.print("[bold red]Error:[/] Config file must have an 'env' object")
|
||||
sys.exit(1)
|
||||
|
||||
return path
|
||||
|
||||
Reference in New Issue
Block a user