Expand description
Configuration management command implementation with hierarchical settings.
This module provides comprehensive configuration management capabilities
through the config
subcommand, enabling users to view, modify, and manage
application settings across multiple configuration categories and sources.
It supports hierarchical configuration with validation and type safety.
§Configuration Architecture
§Configuration Categories
- General: Basic application behavior and preferences
- AI Settings: AI service providers, models, and API configuration
- Audio Processing: Audio analysis and synchronization parameters
- Format Options: Default output formats and conversion settings
- Cache Management: Caching behavior and storage configuration
- Sync Settings: Subtitle timing and synchronization options
§Configuration Sources (Priority Order)
- Command-line Arguments: Highest priority, session-specific
- Environment Variables: Runtime configuration overrides
- User Configuration: Personal settings in user config directory
- Project Configuration: Local project-specific settings
- System Configuration: Global system-wide defaults
- Built-in Defaults: Application default values
§Supported Operations
§Set Operation
- Type Validation: Ensure values match expected data types
- Range Checking: Validate numeric values are within bounds
- Format Verification: Check string values follow required patterns
- Dependency Validation: Verify related settings are compatible
- Backup Creation: Preserve previous values for rollback
§Get Operation
- Value Display: Show current effective value
- Source Identification: Indicate where value originates
- Type Information: Display expected data type and constraints
- Default Comparison: Show difference from built-in defaults
- Metadata Display: Include help text and validation rules
§List Operation
- Categorized Display: Group settings by functional area
- Source Indicators: Show which settings are customized
- Value Formatting: Display values in appropriate format
- Filter Options: Support for category and status filtering
- Export Capability: Generate configuration for sharing
§Reset Operation
- Backup Creation: Automatic backup before reset
- Selective Reset: Option to reset specific categories
- Confirmation Process: Interactive confirmation for safety
- Recovery Information: Instructions for backup restoration
§Configuration Keys
§General Settings
general.enable_progress_bar # Boolean: Show progress indicators
general.backup_enabled # Boolean: Automatic file backups
general.task_timeout_seconds # Integer: Operation timeout in seconds
§AI Configuration
ai.provider # String: AI service provider
ai.api_key # String: OpenAI API authentication
ai.model # String: GPT model selection
ai.max_tokens # Integer: Maximum response length
ai.base_url # String: API endpoint URL
ai.max_sample_length # Integer: Text sample size for analysis
ai.temperature # Float: Response randomness control
ai.retry_attempts # Integer: API request retry count
ai.retry_delay_ms # Integer: Retry delay in milliseconds
§Audio Processing
audio.max_offset_seconds # Float: Maximum sync offset range
audio.correlation_threshold # Float: Minimum correlation for sync
audio.dialogue_threshold # Float: Speech detection sensitivity
audio.min_dialogue_duration_ms # Integer: Minimum speech segment length
audio.enable_dialogue_detection # Boolean: Advanced audio analysis
§Examples
ⓘ
use subx_cli::cli::{ConfigArgs, ConfigAction};
use subx_cli::commands::config_command;
// Set AI provider
let set_args = ConfigArgs {
action: ConfigAction::Set {
key: "ai.provider".to_string(),
value: "openai".to_string(),
},
};
config_command::execute(set_args).await?;
// Get current AI model
let get_args = ConfigArgs {
action: ConfigAction::Get {
key: "ai.openai.model".to_string(),
},
};
config_command::execute(get_args).await?;
Functions§
- execute
- Execute configuration management operations with validation and type safety.
- execute_
with_ config - Execute configuration management command with injected configuration service.