/* The jdenticon command provides a command-line interface for generating Jdenticon identicons. It serves as a wrapper around the `jdenticon` library, allowing users to generate icons directly from their terminal without writing any Go code. The tool supports both single icon generation and high-performance batch processing with concurrent workers. # Usage Single icon generation: jdenticon [flags] Batch processing: jdenticon batch [flags] # Single Icon Examples 1. Generate a default SVG icon and save it to a file: jdenticon "my-awesome-user" > avatar.svg 2. Generate a 128x128 PNG icon with a custom output path: jdenticon --size=128 --format=png --output=avatar.png "my-awesome-user" 3. Generate an SVG with custom styling: jdenticon --hue=0.5 --saturation=0.8 --padding=0.1 "user@example.com" > avatar.svg # Batch Processing Examples 1. Generate icons for multiple users (one per line in input file): jdenticon batch users.txt --output-dir ./avatars 2. High-performance concurrent batch processing: jdenticon batch large-list.txt --output-dir ./avatars --concurrency 8 --format png 3. Sequential processing (disable concurrency): jdenticon batch users.txt --output-dir ./avatars --concurrency 1 # Available Flags ## Global Flags (apply to both single and batch generation): - --size: Icon size in pixels (default: 200) - --format: Output format, either "svg" or "png" (default: "svg") - --padding: Padding as percentage between 0.0 and 0.5 (default: 0.08) - --color-saturation: Saturation for colored shapes between 0.0 and 1.0 (default: 0.5) - --grayscale-saturation: Saturation for grayscale shapes between 0.0 and 1.0 (default: 0.0) - --bg-color: Background color in hex format (e.g., "#ffffff") - --hue-restrictions: Restrict hues to specific degrees (0-360) - --color-lightness: Color lightness range as min,max (default: "0.4,0.8") - --grayscale-lightness: Grayscale lightness range as min,max (default: "0.3,0.9") ## Single Icon Flags: - --output: Output file path (default: stdout) ## Batch Processing Flags: - --output-dir: Output directory for generated identicons (required) - --concurrency: Number of concurrent workers (default: CPU count) # Performance Features The batch command uses a high-performance worker pool pattern for concurrent processing. Key features include: - Concurrent generation with configurable worker count - Graceful shutdown on interrupt signals (Ctrl+C) - Real-time progress tracking with statistics - Up to 3-4x performance improvement vs sequential processing - Thread-safe operation with no race conditions This tool serves as both a practical utility and a reference implementation for consuming the `jdenticon` library with proper error handling and configuration management. */ package main