Crates.io | curator_cli |
lib.rs | curator_cli |
version | 0.3.5 |
created_at | 2025-08-12 01:36:21.94793+00 |
updated_at | 2025-08-16 02:39:39.504777+00 |
description | A versatile CLI tool for project management |
homepage | https://github.com/Saturnyx/curator |
repository | https://github.com/Saturnyx/curator |
max_upload_size | |
id | 1791259 |
size | 147,525 |
A powerful command-line tool for managing project licenses and configuration with smart license detection and interactive setup.
git clone https://github.com/Saturnyx/curator.git
cd curator
cargo build --release
The binary will be available at target/release/curator
(or curator.exe
on Windows).
Method 1: Install directly from crates.io
cargo install curator_cli
Method 2: Install from the repository
git clone https://github.com/Saturnyx/curator.git
cd curator
cargo install --path .
Curator uses the command alias cu
for convenience.
Before using license management features, initialize your project configuration:
cu config set
This will prompt you for:
curator.json
to .gitignore
Download and configure a license for your project:
cu license set MIT
cu license set apache-2.0
cu license set GPL-3.0
If you make a typo, Curator will suggest similar license names:
cu license set ap
# License 'ap' not found in SPDX list. Please try again.
# Did you mean:
# 1. Apache-2.0
# 2. APSL-2.0
# 3. APL-1.0
Remove the current LICENSE file:
cu license remove
Reload the license from your configuration (useful after updating project details):
cu license reload
The project configuration is stored in curator.json
:
{
"data": {
"year": "2025",
"license": "MIT",
"copyright holders": "Your Name"
},
"settings": {
"path": "/path/to/your/project",
"author": "Your Name",
"project": "project-name"
}
}
To update your project configuration:
cu config set
<year>
, <copyright holders>
with your configuration data.gitignore
entries for configuration filesCurator is built with a modular architecture:
main.rs
: CLI interface using clap
for argument parsingconfig.rs
: Configuration management and project initializationlicense.rs
: License fetching, processing, and managementtools.rs
: Utility functions including fuzzy searchlib.rs
: Library interface for external useclap
: Command-line argument parsingreqwest
: HTTP client for fetching licensesserde_json
: JSON serialization for configurationdialoguer
: Interactive promptsfuzzy-matcher
: Fuzzy string matching for license suggestionscrossterm
: Cross-platform terminal stylingchrono
: Date handling for copyright yearsContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. For more information, please check the CONTRIBUTING.md file.
cargo test
cargo build
cargo run -- --help
This project is licensed under the MIT License - see the LICENSE file for details.