Initial upload: gitignore-generator-cli v1.0.0 with CI/CD workflow
This commit is contained in:
257
README.md
257
README.md
@@ -1,3 +1,258 @@
|
|||||||
# gitignore-generator-cli
|
# gitignore-generator-cli
|
||||||
|
|
||||||
A CLI tool that generates .gitignore files by specifying technologies/frameworks. Supports 100+ frameworks via gitignore.io integration with offline caching.
|
A CLI tool that generates `.gitignore` files by specifying technologies/frameworks. Supports 100+ frameworks via gitignore.io integration with offline caching.
|
||||||
|
|
||||||
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
[](https://www.python.org/downloads/)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Generate .gitignore** - Combine patterns from multiple tech stacks
|
||||||
|
- **Auto-detect** - Scan project files and suggest appropriate tech stacks
|
||||||
|
- **Preview mode** - Preview generated content before writing
|
||||||
|
- **Offline caching** - Fast access to patterns with configurable cache expiration
|
||||||
|
- **Custom patterns** - Add your own patterns to generated output
|
||||||
|
- **100+ frameworks** - Full support via gitignore.io API
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### From PyPI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install gitignore-generator-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
### From Source
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/gitignore-generator-cli.git
|
||||||
|
cd gitignore-generator-cli
|
||||||
|
pip install -e .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Generate .gitignore for specific technologies
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Generate for Node.js and Python
|
||||||
|
gitignore-generator generate node python
|
||||||
|
|
||||||
|
# Generate and save to .gitignore
|
||||||
|
gitignore-generator generate node python -o .gitignore
|
||||||
|
|
||||||
|
# Preview without writing
|
||||||
|
gitignore-generator generate node python --preview
|
||||||
|
```
|
||||||
|
|
||||||
|
### Auto-detect project type
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Detect and suggest
|
||||||
|
gitignore-generator detect
|
||||||
|
|
||||||
|
# Detect and generate
|
||||||
|
gitignore-generator detect --preview
|
||||||
|
gitignore-generator detect -o .gitignore
|
||||||
|
```
|
||||||
|
|
||||||
|
### List supported technologies
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# List all
|
||||||
|
gitignore-generator list
|
||||||
|
|
||||||
|
# Filter by name
|
||||||
|
gitignore-generator list python
|
||||||
|
```
|
||||||
|
|
||||||
|
### Show patterns for a technology
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator show node
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### generate
|
||||||
|
|
||||||
|
Generate .gitignore for specified tech stacks.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator generate [OPTIONS] TECH...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-o, --output PATH Output file path (default: stdout)
|
||||||
|
--preview Preview without writing
|
||||||
|
--add-pattern TEXT Add custom pattern (can be used multiple times)
|
||||||
|
--force-refresh Force refresh from API, bypass cache
|
||||||
|
--merge Merge with existing .gitignore
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
```bash
|
||||||
|
gitignore-generator generate node python django
|
||||||
|
gitignore-generator generate node -o .gitignore --preview
|
||||||
|
gitignore-generator generate node --add-pattern "*.log"
|
||||||
|
```
|
||||||
|
|
||||||
|
### detect
|
||||||
|
|
||||||
|
Auto-detect project type from existing files.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator detect [OPTIONS]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-o, --output PATH Output file path
|
||||||
|
--preview Preview without writing
|
||||||
|
--force-refresh Force refresh from API
|
||||||
|
```
|
||||||
|
|
||||||
|
### list
|
||||||
|
|
||||||
|
List all supported tech stacks.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator list [OPTIONS] [SEARCH]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--force-refresh Force refresh from API
|
||||||
|
```
|
||||||
|
|
||||||
|
### show
|
||||||
|
|
||||||
|
Show gitignore patterns for a specific tech.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator show [OPTIONS] TECH
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--force-refresh Force refresh from API
|
||||||
|
```
|
||||||
|
|
||||||
|
### cache
|
||||||
|
|
||||||
|
Manage cache.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator cache
|
||||||
|
```
|
||||||
|
|
||||||
|
### clear-cache
|
||||||
|
|
||||||
|
Clear all cached patterns.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator clear-cache
|
||||||
|
```
|
||||||
|
|
||||||
|
### cleanup
|
||||||
|
|
||||||
|
Remove expired cache entries.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gitignore-generator cleanup --days 7
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Cache Location
|
||||||
|
|
||||||
|
Default: `~/.cache/gitignore-generator/`
|
||||||
|
|
||||||
|
Customize via:
|
||||||
|
```bash
|
||||||
|
gitignore-generator --cache-dir /path/to/cache generate node
|
||||||
|
```
|
||||||
|
|
||||||
|
### Custom Patterns
|
||||||
|
|
||||||
|
Create a file with custom patterns (one per line):
|
||||||
|
```bash
|
||||||
|
# ~/.config/gitignore-generator/custom_patterns.txt
|
||||||
|
*.custom
|
||||||
|
custom/
|
||||||
|
.env.local
|
||||||
|
```
|
||||||
|
|
||||||
|
## Supported Technologies
|
||||||
|
|
||||||
|
The tool supports 100+ technologies including:
|
||||||
|
|
||||||
|
- **Languages**: Python, Node.js, Go, Rust, Java, C++, Ruby, PHP, Swift, Kotlin
|
||||||
|
- **Frameworks**: Django, Flask, Rails, React, Vue, Angular, Express, Spring
|
||||||
|
- **Tools**: Docker, Kubernetes, Terraform, Ansible, Git, Vim, Emacs
|
||||||
|
- **IDEs**: VS Code, JetBrains, Eclipse, Vim, Emacs
|
||||||
|
- **OS**: macOS, Windows, Linux
|
||||||
|
|
||||||
|
For full list:
|
||||||
|
```bash
|
||||||
|
gitignore-generator list
|
||||||
|
```
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
### Network Errors
|
||||||
|
|
||||||
|
If the API is unavailable, the tool will:
|
||||||
|
1. Use cached patterns if available
|
||||||
|
2. Fall back to local templates
|
||||||
|
3. Show a warning message
|
||||||
|
|
||||||
|
### Unknown Technology
|
||||||
|
|
||||||
|
If you specify an unknown technology, the tool will:
|
||||||
|
1. Show available similar technologies
|
||||||
|
2. Suggest correct names
|
||||||
|
3. Fail with helpful error message
|
||||||
|
|
||||||
|
### File Permissions
|
||||||
|
|
||||||
|
If writing fails due to permissions, the tool will:
|
||||||
|
1. Show error with file path
|
||||||
|
2. Suggest using `--output` with writable location
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create virtual environment
|
||||||
|
python -m venv venv
|
||||||
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
pip install -e ".[dev]"
|
||||||
|
|
||||||
|
# Run tests
|
||||||
|
pytest tests/ -v --cov=gitignore_generator
|
||||||
|
```
|
||||||
|
|
||||||
|
### Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
gitignore-generator-cli/
|
||||||
|
├── gitignore_generator/
|
||||||
|
│ ├── __init__.py # Package marker, version
|
||||||
|
│ ├── api.py # gitignore.io API client
|
||||||
|
│ ├── cache.py # Caching system
|
||||||
|
│ ├── detector.py # Project type detection
|
||||||
|
│ ├── generator.py # Pattern combination
|
||||||
|
│ └── cli.py # CLI interface
|
||||||
|
├── templates/ # Local fallback templates
|
||||||
|
├── tests/
|
||||||
|
│ ├── conftest.py # Test fixtures
|
||||||
|
│ ├── test_api.py # API tests
|
||||||
|
│ ├── test_cache.py # Cache tests
|
||||||
|
│ ├── test_detector.py # Detector tests
|
||||||
|
│ ├── test_generator.py # Generator tests
|
||||||
|
│ └── test_cli.py # CLI tests
|
||||||
|
├── pyproject.toml # Project configuration
|
||||||
|
├── setup.py # Package setup
|
||||||
|
└── README.md # Documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License - see LICENSE file for details.
|
||||||
|
|||||||
Reference in New Issue
Block a user