Как я создал TypeBash: строго типизированный язык, который компилируется в безопасный Bash
Привет, сообщество! Написание Bash-скриптов для автоматизации или CI/CD — это всегда хождение по минному полю. Одна опечатка в имени переменной — и скрипт либо молча падает, либо делает не то.
Вдохновившись тем, как TypeScript решил проблемы безопасности в JavaScript, я решил сделать похожий инструмент для шелл-скриптов. Встречайте TypeBash — компилятор и статический анализатор, написанный на Rust, который добавляет строгую типизацию в мир Bash.Исходный код проекта на GitHub: DANECHKA897/TypeBash
В чём основная фишка?
TypeBash трансформирует ваш лаконичный код с проверкой типов в чистый, production-ready .sh файл. При этом на выходе автоматически генерируется безопасный Bash-код, настроенный по лучшим практикам DevOps (включая set -euo pipefail и обработчик нативных ошибок trap ERR).
Ключевые фичи компилятора на данный момент:
- Строгая типизация: Поддержка типов string, number, boolean, дженерик-массивов (Array<T>).
- Умный тип Path: Встроенная валидация путей.
- DevOps Shield: Компилятор умеет автоматически проверять, существуют ли вызываемые вами утилиты (например, docker, git, curl) в вашем системном PATH прямо на этапе сборки скрипта.
- Чистый синтаксис: Избавление от громоздкого и «мусорного» синтаксиса классического Bash в пользу читаемости.
Как выглядит синтаксис?
Вот пример кода на TypeBash (файл script.tb):
О разработке и планах
Проект написан на Rust. Сразу скажу честно: архитектуру я продумывал сам, но для написания кода активно привлекал ИИ в качестве персонального ментора и ассистента, чтобы ускорить процесс и сделать архитектуру безопаснее. На текущий момент готова первая бета-версия (v0.5.0). Проект распространяется под открытой лицензией MIT. Я буду очень рад вашим звездам на GitHub, пулл-реквестам и критике в комментариях. Каких типов или проверок вам больше всего не хватает в стандартном Bash? Я только начел учить Rust и C#, поэтому живите с этим :)
Пока, спасибо что прочитали >:)