feat: implement GNU-style command line options with pflag
- Add pflag dependency for POSIX/GNU-style command line parsing - Replace Go standard flag package with pflag for better UX - Implement long options with double dashes (--config, --max-messages, --help) - Add short option aliases with single dashes (-c, -m, -h) - Update help message with proper formatting and application description - Update all documentation to reflect new flag syntax - Update test scripts to use new command line format GNU-style options provide better usability: - Long descriptive options with --flag-name format - Short single-character aliases for common options - Standard help flag behavior with --help/-h - Compatible with shell completion and standard conventions Command line interface now supports: - --config/-c FILE: Path to configuration file - --max-messages/-m N: Message processing limit per mailbox - --help/-h: Show help message and exit All existing functionality preserved with improved command line experience. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
651d95e98b
commit
031dd86b0d
8 changed files with 47 additions and 28 deletions
13
README.md
13
README.md
|
|
@ -39,7 +39,7 @@ A powerful email backup utility that synchronizes mail from IMAP accounts to Cou
|
|||
|
||||
### Operational Features
|
||||
- **Automatic Config Discovery**: Finds configuration files in standard locations
|
||||
- **Command Line Control**: Override settings with `--max-messages` and `--config` flags
|
||||
- **Command Line Control**: GNU-style options with `--max-messages`/`-m` and `--config`/`-c` flags
|
||||
- **Comprehensive Logging**: Detailed output for monitoring and troubleshooting
|
||||
- **Error Resilience**: Graceful handling of network issues and server problems
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ The application will:
|
|||
### Configuration File Discovery
|
||||
|
||||
mail2couch automatically searches for configuration files in this order:
|
||||
1. Path specified by `--config` flag
|
||||
1. Path specified by `--config`/`-c` flag
|
||||
2. `./config.json` (current directory)
|
||||
3. `./config/config.json` (config subdirectory)
|
||||
4. `~/.config/mail2couch/config.json` (user config directory)
|
||||
|
|
@ -117,8 +117,9 @@ mail2couch automatically searches for configuration files in this order:
|
|||
./mail2couch [options]
|
||||
|
||||
Options:
|
||||
--config PATH Specify configuration file path
|
||||
--max-messages N Limit messages processed per mailbox per run (0 = unlimited)
|
||||
-c, --config FILE Path to configuration file
|
||||
-m, --max-messages N Limit messages processed per mailbox per run (0 = unlimited)
|
||||
-h, --help Show help message
|
||||
```
|
||||
|
||||
### Folder Pattern Examples
|
||||
|
|
@ -382,7 +383,7 @@ Complex setup with multiple accounts, filtering, and different sync modes:
|
|||
- Schedule regular backups of CouchDB databases
|
||||
|
||||
### Performance Tuning
|
||||
- Use `--max-messages` to limit processing load
|
||||
- Use `--max-messages`/`-m` to limit processing load
|
||||
- Run during off-peak hours for large initial syncs
|
||||
- Monitor IMAP server rate limits and connection limits
|
||||
- Consider running multiple instances for different accounts
|
||||
|
|
@ -408,7 +409,7 @@ Complex setup with multiple accounts, filtering, and different sync modes:
|
|||
|
||||
**Performance Problems**:
|
||||
- Use date filtering (`since`) for large mailboxes
|
||||
- Implement `--max-messages` limits for initial syncs
|
||||
- Implement `--max-messages`/`-m` limits for initial syncs
|
||||
- Monitor server-side rate limiting
|
||||
|
||||
For detailed troubleshooting, see the [test environment documentation](test/README.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue