"""Command-line interface for the tagging system.""" import argparse import sys from pathlib import Path from typing import Optional from .config import load_config def main(): """Main entry point for the CLI.""" parser = argparse.ArgumentParser( description="Comprehensive Tagging System for Obsidian Vaults" ) parser.add_argument( "vault_path", type=str, help="Path to the Obsidian vault directory" ) parser.add_argument( "--config", type=str, help="Path to configuration file (YAML or JSON)" ) parser.add_argument( "--dry-run", action="store_true", help="Show what would be done without making changes" ) parser.add_argument( "--verbose", "-v", action="store_true", help="Enable verbose output" ) args = parser.parse_args() # Validate vault path vault_path = Path(args.vault_path) if not vault_path.exists(): print(f"Error: Vault path '{vault_path}' does not exist") sys.exit(1) if not vault_path.is_dir(): print(f"Error: Vault path '{vault_path}' is not a directory") sys.exit(1) # Load configuration config = load_config(args.config) if args.verbose: print(f"Vault path: {vault_path}") print(f"Configuration: {args.config or 'default'}") print(f"Dry run: {args.dry_run}") # TODO: Implement actual tagging logic in future tasks print("Tagging system setup complete!") print("Note: Core implementation will be added in subsequent tasks.") if args.dry_run: print("Dry run mode - no files would be modified") return 0 if __name__ == "__main__": sys.exit(main())