Skip to content

cargoe (Rust) is a powerful CLI tool for managing Cargo.toml files with features that cargo doesn't provide out of the box.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

cumulus13/cargoe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cargoe

Crates.io Documentation License

cargoe is a powerful CLI tool for managing Cargo.toml files with features that cargo doesn't provide out of the box.

Features

  • πŸ“ Exclude/Include Management - Easily add, remove, and list exclude/include patterns
  • 🏷️ Keywords & Categories - Manage keywords and categories with crates.io validation
  • πŸŽ–οΈ Badges - Add and manage repository badges
  • βš™οΈ Metadata - Custom metadata management
  • πŸ” Validation - Validate against crates.io requirements
  • πŸ“Š Info Display - Quick package information summary
  • πŸš€ Init Wizard - Interactive setup for publishing
  • 🎨 Format - Format your Cargo.toml
  • πŸ”„ Dry Run - Preview changes before applying

Installation

cargo install cargoe

Or from source:

git clone https://github.com/cumulus13/cargoe
cd cargoe
cargo install --path .

Quick Start

# Add exclude patterns
cargoe exclude add "*.log" ".env" "tmp/"

# Add keywords
cargoe keywords add cli cargo toml

# Add categories
cargoe categories add command-line-utilities development-tools::cargo-plugins

# Set repository URL
cargoe set repository https://github.com/user/repo

# Validate for publishing
cargoe validate --strict

# Show package info
cargoe info

# Initialize for publishing (interactive)
cargoe init

Usage

Exclude Patterns

cargoe exclude add "target/" "*.log"      # Add patterns
cargoe exclude remove "*.log"             # Remove patterns
cargoe exclude list                        # List all patterns
cargoe exclude clear                       # Clear all patterns

Include Patterns

cargoe include add "src/" "Cargo.toml"
cargoe include list

Keywords

cargoe keywords add cli cargo toml        # Add keywords (max 5)
cargoe keywords remove cli                # Remove keyword
cargoe keywords list                       # List all keywords

Categories

cargoe categories add command-line-utilities
cargoe categories list
cargoe categories valid                    # Show valid crates.io categories

Badges

cargoe badges add maintenance status=actively-developed
cargoe badges add github-actions workflow=ci.yml
cargoe badges list
cargoe badges remove maintenance

Set Fields

cargoe set repository https://github.com/user/repo
cargoe set homepage https://example.com
cargoe set documentation https://docs.rs/crate
cargoe set license "MIT OR Apache-2.0"

Get Fields

cargoe get repository
cargoe get version

Validation

cargoe validate              # Basic validation
cargoe validate --strict     # Strict validation for publishing

Other Commands

cargoe info                  # Show package summary
cargoe fmt                   # Format Cargo.toml
cargoe fmt --check           # Check if formatted
cargoe init                  # Interactive initialization
cargoe init --yes            # Non-interactive initialization

Global Options

--manifest-path <PATH>       # Path to Cargo.toml
--dry-run                    # Preview changes without applying
--quiet                      # Suppress output except errors

Examples

Prepare for Publishing

# Validate current state
cargoe validate --strict

# Initialize missing fields interactively
cargoe init

# Add keywords and categories
cargoe keywords add cli parser rust
cargoe categories add command-line-utilities

# Add exclude patterns
cargoe exclude add "tests/" "benches/" ".github/"

# Final validation
cargoe validate --strict

Batch Operations

# Add multiple keywords at once
cargoe keywords add cli parser async tokio rust

# Add multiple exclude patterns
cargoe exclude add "*.log" "*.tmp" ".env" "tmp/" "cache/"

CI/CD Integration

# In your CI pipeline
cargoe validate --strict || exit 1
cargoe fmt --check || exit 1

Configuration

cargoe respects your Cargo.toml formatting and comments. It uses toml_edit to preserve the original structure.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Licensed under either of:

at your option.

Author

Hadi Cahyadi

Buy Me a Coffee

Donate via Ko-fi

Support me on Patreon

Acknowledgments

Built with:

About

cargoe (Rust) is a powerful CLI tool for managing Cargo.toml files with features that cargo doesn't provide out of the box.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages