{ IGNORIUM }

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

  • πŸ” 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

  1. Scan: Ignorium scans your project directory
  2. Detect: Identifies what technologies you're using by analyzing project files and folders
  3. Generate: Creates appropriate .gitignore rules for detected technologies
  4. 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.


Developed with πŸ’™ by ilexbor

Libraries