/*
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] <input-string>

Batch processing:

	jdenticon batch [flags] <input-file>

# 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
