Repository navigation
Releases: paulmann/Clean_BOM_Senior
Release list
Clean BOM Senior v1.0.0: Initial Release
Overview
We are thrilled to announce the first stable release of Clean BOM Senior v1.0.0! This is a production-ready tool that brings enterprise-grade UTF-8 BOM and Windows CRLF management to your codebase.
What's Included
Clean BOM Senior is a robust, efficient shell utility designed to detect and safely remove invisible UTF-8 Byte Order Marks (BOM) and Windows CRLF line endings from source files. It prevents critical PHP errors, JavaScript issues, and encoding problems across multiple platforms.
✨ Core Features
- Byte Order Mark Detection & Removal: Automatically detects UTF-8, UTF-16, and UTF-32 BOM signatures
- CRLF Normalization: Converts Windows line endings (CRLF) to Unix standard (LF)
- 50+ File Type Support: Handles PHP, CSS, JavaScript, JSON, YAML, XML, HTML, and many more
- Enterprise-Grade Safety:
- Atomic operations with backup capabilities
- Dry-run mode for preview without modifications
- Comprehensive error handling and reporting
- Preserves file permissions and timestamps
- Cross-Platform Compatibility: Works seamlessly on Linux, macOS, Windows (WSL2), BSD, and other Unix-like systems
- CI/CD Ready: Perfect for GitHub Actions, GitLab CI, Jenkins, Docker, and other automation platforms
- Zero Dependencies: Pure Bash script with only standard Unix utilities
Key Improvements
Intelligent File Detection
- Multi-level detection strategy (extension, MIME type, content inspection)
- Automatic binary file detection to prevent corruption
- Recursive directory traversal with glob pattern support
Performance Optimized
- Processes 1000+ files per second
- Minimal memory footprint (<10 MB)
- Parallel-friendly with proper exit codes for scripting
Developer Friendly
- Clear, informative error messages
- Verbose mode with detailed logging
- Configurable exclusion patterns for .git, node_modules, etc.
- Support for .gitattributes management
Installation
Quick Start
# Download
wget https://raw.githubusercontent.com/paulmann/Clean_BOM_Senior/main/clean-bom-senior.sh
# Make executable
chmod +x clean-bom-senior.sh
# Run
./clean-bom-senior.sh /path/to/projectAlternative Methods
For comprehensive installation instructions covering package managers, Docker, Homebrew, and more, see our Installation Guide.
Usage Examples
Basic Cleaning (Dry-Run Preview)
./clean-bom-senior.sh --dry-run /path/to/projectFull Cleanup with Backup
./clean-bom-senior.sh --backup --verbose /path/to/projectSpecific File Types
./clean-bom-senior.sh --file-type php,json /path/to/projectCI/CD Integration
./clean-bom-senior.sh --fix-crlf --fix-gitattributes /path/to/project- Quick-Start-Guide — Get up and running in 5 minutes## Documentation
- Command-Line-Reference — Complete flag and option documentation
- Quick-Start-Guide — Get up and running in 5 minutes
- Installation-Guide — Platform-specific installation instructions
- Troubleshooting-Guide — Solutions to common issues
- FAQ — 40+ frequently asked questions
Real-World Impact
Common Problems Solved
✅ PHP Fatal Errors: Prevents "Cannot redeclare class" errors caused by BOM in namespace declarations
✅ Git Repository Issues: Stops "all files modified" situations from line-ending inconsistencies
✅ CI/CD Pipeline Failures: Normalizes encodings before building or testing
✅ Cross-Platform Compatibility: Ensures files work seamlessly across Windows, macOS, and Linux
✅ JSON/YAML Parse Errors: Removes invisible characters breaking configuration files
Safety & Reliability
- Production Ready: Tested across 15+ Linux distributions and Unix variants
- Atomic Operations: Changes are applied safely with rollback capability
- Comprehensive Logging: Exit codes (0=success, 1=no changes, 2=errors, 3=invalid path, 4=permission denied) enable integration with any automation platform
- Permission Preservation: Original file permissions and ownership are maintained
- Read-Only Detection: Safely skips files you don't have write access to
System Requirements
- Minimum: Bash 3.2, 128 MB RAM, 1 MB disk space
- Recommended: Bash 4.0+, 512 MB+ RAM, SSD for large projects
- Platforms: Linux, macOS (Intel & Apple Silicon), Windows (WSL2, Git Bash), BSD, and other POSIX systems
License
Clean BOM Senior is distributed under the GPL-2.0 license. See the LICENSE file for details.
Contributing
We welcome contributions! Please feel free to:
- Report issues and suggest improvements
- Submit pull requests with enhancements
- Share your use cases and experiences
- Help improve documentation
Visit our GitHub Issues to get started.
Support & Community
- Issue Tracker: GitHub Issues
- Wiki Documentation: Comprehensive Guide
- Author: Mikhail Deynekin
Thank you for choosing Clean BOM Senior! We're confident this tool will significantly improve your development workflow. Happy cleaning! 🧹✨