Знакомо, когда shell-скрипт ведёт себя нормально месяцами, а потом ломается из-за пустого значения, пробела в имени файла или незамеченной ошибки команды? Я убираю такие сюрпризы с помощью Amber — современного языка, который транслируется в обычный переносимый Bash. По сути вы пишете на нормальном типизированном языке, а на выходе получаете привычный шелл-скрипт, запускаемый на любом сервере без единого дополнительного пакета.
Беру задачи вроде автоматизации выкатки, сборки резервных копий и их восстановления, чистки и ротации журналов, обёрток вокруг задач планировщика, инсталляторов, стартовых bootstrap-сценариев, отдельных шагов CI/CD и интеграционного кода, который соединяет ваши сервисы между собой. Пишу на Amber: явные переменные, типизированные функции, честная обработка сбоев, прозрачная логика — и всё это собирается в один Bash-файл, готовый к развёртыванию.
В чём выигрыш перед ручным Bash. Типы у строк и чисел заданы явно, поэтому целая категория ошибок с кавычками и разбиением аргументов исчезает как класс. Сбой не растворяется бесследно, а фиксируется. Код выглядит как обычная программа, и человеку, который откроет его через полгода, не придётся расшифровывать шаманские конструкции. А поскольку итог — стандартный Bash, отделу эксплуатации не нужно объяснять, откуда взялся ещё один Python или Node и зачем его держать на машинах.
К сдаче прилагаю прокомментированный исходник на Amber, готовый Bash, компактный README по сборке и запуску и устный разбор для вашей команды. Всё проверяю на живых Linux-оболочках, а как стартовый вариант с чётким объёмом с удовольствием возьму один ваш запутанный скрипт и приведу его в порядок. Отправьте файл или описание — оценю сроки и объём работ.
Беру задачи вроде автоматизации выкатки, сборки резервных копий и их восстановления, чистки и ротации журналов, обёрток вокруг задач планировщика, инсталляторов, стартовых bootstrap-сценариев, отдельных шагов CI/CD и интеграционного кода, который соединяет ваши сервисы между собой. Пишу на Amber: явные переменные, типизированные функции, честная обработка сбоев, прозрачная логика — и всё это собирается в один Bash-файл, готовый к развёртыванию.
В чём выигрыш перед ручным Bash. Типы у строк и чисел заданы явно, поэтому целая категория ошибок с кавычками и разбиением аргументов исчезает как класс. Сбой не растворяется бесследно, а фиксируется. Код выглядит как обычная программа, и человеку, который откроет его через полгода, не придётся расшифровывать шаманские конструкции. А поскольку итог — стандартный Bash, отделу эксплуатации не нужно объяснять, откуда взялся ещё один Python или Node и зачем его держать на машинах.
К сдаче прилагаю прокомментированный исходник на Amber, готовый Bash, компактный README по сборке и запуску и устный разбор для вашей команды. Всё проверяю на живых Linux-оболочках, а как стартовый вариант с чётким объёмом с удовольствием возьму один ваш запутанный скрипт и приведу его в порядок. Отправьте файл или описание — оценю сроки и объём работ.