#!/usr/bin/env python3 """ Caveman Compress CLI Usage: caveman """ import sys from pathlib import Path from .compress import compress_file from .detect import detect_file_type, should_compress def print_usage(): print("Usage: caveman ") def main(): if len(sys.argv) != 2: print_usage() sys.exit(1) filepath = Path(sys.argv[1]) # Check file exists if not filepath.exists(): print(f"āŒ File not found: {filepath}") sys.exit(1) if not filepath.is_file(): print(f"āŒ Not a file: {filepath}") sys.exit(1) filepath = filepath.resolve() # Detect file type file_type = detect_file_type(filepath) print(f"Detected: {file_type}") # Check if compressible if not should_compress(filepath): print("Skipping: file is not natural language (code/config)") sys.exit(0) print("Starting caveman compression...\n") try: success = compress_file(filepath) if success: print("\nCompression completed successfully") backup_path = filepath.with_name(filepath.stem + ".original.md") print(f"Compressed: {filepath}") print(f"Original: {backup_path}") sys.exit(0) else: print("\nāŒ Compression failed after retries") sys.exit(2) except KeyboardInterrupt: print("\nInterrupted by user") sys.exit(130) except Exception as e: print(f"\nāŒ Error: {e}") sys.exit(1) if __name__ == "__main__": main()