Stop tracking personal workflow artifacts at repo root, add CI and MIT license, align README and agent skills with artifacts/ defaults, and enable Ruff in dev/CI so releases are verifiable without local-only runs. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
"""Config CLI command implementations."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import click
|
|
|
|
from vlm.cli_helpers import command_error
|
|
from vlm.config import create_default_config, validate_config
|
|
from vlm.context import CLIContext
|
|
|
|
|
|
def config_init_cmd(ctx: CLIContext, path: Path) -> None:
|
|
"""Initialize configuration file with defaults."""
|
|
try:
|
|
if path.exists():
|
|
click.echo(f"Configuration file already exists at {path}", err=True)
|
|
if not click.confirm("Overwrite existing configuration?"):
|
|
click.echo("Configuration initialization cancelled.")
|
|
return
|
|
|
|
create_default_config(path)
|
|
click.echo(f"Configuration file created at {path}")
|
|
click.echo("Edit this file to customize your settings.")
|
|
|
|
except Exception as e:
|
|
command_error(
|
|
ctx,
|
|
f"Error creating configuration: {e}",
|
|
f"Configuration creation failed: {e}",
|
|
exc_info=True,
|
|
)
|
|
|
|
|
|
def config_show_cmd(ctx: CLIContext) -> None:
|
|
"""Show current configuration."""
|
|
cfg = ctx.config
|
|
click.echo("Current configuration:")
|
|
click.echo(f" Library root: {cfg.library_root}")
|
|
click.echo(f" Video extensions: {', '.join(cfg.video_extensions)}")
|
|
click.echo(f" Movie template: {cfg.movie_template}")
|
|
click.echo(f" Series template: {cfg.series_template}")
|
|
click.echo(f" Movie filename template: {cfg.movie_filename_template}")
|
|
click.echo(f" Series filename template: {cfg.series_filename_template}")
|
|
click.echo(f" Quarantine directory: {cfg.quarantine_dir}")
|
|
click.echo(f" Workspace directory: {cfg.workspace_dir}")
|
|
click.echo(f" Log level: {cfg.log_level}")
|
|
|
|
|
|
def config_validate_cmd(ctx: CLIContext) -> None:
|
|
"""Validate configuration."""
|
|
cfg = ctx.config
|
|
errors = validate_config(cfg)
|
|
|
|
if not errors:
|
|
click.echo("Configuration is valid.")
|
|
else:
|
|
click.echo("Configuration validation errors:", err=True)
|
|
for error in errors:
|
|
click.echo(f" - {error}", err=True)
|
|
command_error(ctx, "Configuration validation failed.", "Configuration validation failed")
|