Files
go-jdenticon/cmd/jdenticon/doc.go
Kevin McIntyre d9e84812ff Initial release: Go Jdenticon library v0.1.0
- Core library with SVG and PNG generation
- CLI tool with generate and batch commands
- Cross-platform path handling for Windows compatibility
- Comprehensive test suite with integration tests
2026-01-03 23:41:48 -05:00

84 lines
2.7 KiB
Go

/*
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