Ignorium is a CLI tool for automatic .gitignore generation based on technologies detected in the target directory.
Ignorium intelligently scans your project directory and generates appropriate .gitignore files based on detected frameworks, build tools, IDEs, and other project characteristics.
Table of contents
- Features
- How it works
- Example
- Supported Technologies
- Installation
- Usage
- Changelog
- Issues
- Contributing
- License
Features
- π Intelligent Detection: Automatically detects project types based on files and directories
- π Multi-Platform Support: Works with Flutter, Android, and iOS projects
- π οΈ Tool Integration: Recognizes popular development tools and IDEs
- π€ User-Friendly: Preserves your custom .gitignore rules while updating generated sections
- π Fast & Efficient: Scans projects quickly with minimal overhead
- π Recursive Processing: Can process entire project hierarchies
- π¦ Zero Configuration: Works out of the box without setup
How it works
Algorithm
- Scan: Ignorium scans your project directory
- Detect: Identifies what technologies you're using by analyzing project files and folders
- Generate: Creates appropriate .gitignore rules for detected technologies
- Preserve: Maintains your existing custom rules while updating auto-generated sections in .gitignore files
Example
Ignorium automatically detects your project structure and creates or updates .gitignore files in appropriate locations:
monorepo/
βββ .idea/
βββ dart_project/
β βββ .gitignore β Created/Updated rules for Dart
β βββ pubspec.yaml
βββ flutter_project/
β βββ .idea/
β βββ android/
β β βββ app/
β β β βββ .gitignore β Created/Updated rules for Android, Google services, Gradle
β β β βββ google-services.json
β β β βββ build.gradle
β β βββ .gitignore β Created/Updated rules for Gradle
β β βββ build.gradle
β β βββ settings.gradle
β βββ ios/
β β βββ Runner.xcodeproj/
β β βββ .gitignore β Created/Updated rules for iOS, CocoaPods
β β βββ Podfile
β βββ .gitignore β Created/Updated rules for Flutter
β βββ pubspec.yaml
βββ .gitignore β Created/Updated rules for JetBrains IDE
βββ README.md
Each .gitignore file contains rules specific to that directory's detected technologies, while preserving your existing custom rules.
Supported Technologies
Ignorium automatically detects and generates .gitignore rules for:
Programming Languages & Frameworks
- Dart
- Flutter (Android, iOS)
Build Systems & Package Managers
- CocoaPods
- Gradle
- Pub
IDEs & Code Editors
- JetBrains IDEs
- Visual Studio Code
- Xcode
Mobile Development projects
- Android app
- Android key store files
- iOS app
Documentation Tools
- Dart documentation
- VitePress
Version Managers
- Dart Version Manager (DVM)
- Flutter Version Manager (FVM)
Services
- Firebase
- Google Services
Auto-generated files
- *.dart files (build_runner, etc.)
User specific files
- Local properties files
Operating Systems
- macOS
Installation
Using Homebrew (macOS/Linux)
brew tap ilexbor/tap
brew install ignorium
Using Dart Pub
Install the package globally by running:
dart pub global activate --overwrite ignorium
Usage
Generate .gitignore files for the current directory and all subdirectories:
ignorium gen
-r, --[no-]recursive
- scan directories recursively (default: true).
Changelog
For a full list of changes and updates, see the CHANGELOG.md.
Issues
If you encounter any issues or have suggestions for improvements, please create an issue on GitHub.
When reporting a bug or requesting a fix, please provide as much detail as possible to help understand the problem or idea.
Including the following information is highly appreciated:
- Steps to reproduce the issue
- Expected behavior
- Any error messages or logs
- Your environment (operating system, Dart version, etc.)
Your feedback is valuable and will help improve the package!
Contributing
Contributions are welcome!
Please fork this repository and submit pull requests.
By participating in this project, you agree to abide by our Code of Conduct.
License
This project is licensed under the BSD-3-Clause License.