Как я создал 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):

let backupDir: Path = "./backups" let maxAttempts: number = 3 fn notify(msg: string) { print(msg) } notify("TypeBash v0.5.0-beta: Initializing secure script execution...") let targetFiles: Array<string> = ["config.json", "database.sql"] for file in targetFiles { print(file) } exec "mkdir -p ./backups"

О разработке и планах
Проект написан на Rust. Сразу скажу честно: архитектуру я продумывал сам, но для написания кода активно привлекал ИИ в качестве персонального ментора и ассистента, чтобы ускорить процесс и сделать архитектуру безопаснее. На текущий момент готова первая бета-версия (v0.5.0). Проект распространяется под открытой лицензией MIT. Я буду очень рад вашим звездам на GitHub, пулл-реквестам и критике в комментариях. Каких типов или проверок вам больше всего не хватает в стандартном Bash? Я только начел учить Rust и C#, поэтому живите с этим :)

Пока, спасибо что прочитали >:)

11