Files
MessageGateway/make-wrapper.sh
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

124 lines
3.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Обертка для Makefile для поддержки подкоманд с пробелами
# Использование: ./make-wrapper.sh docker build
# ./make-wrapper.sh git push origin main
# ./make-wrapper.sh k8s apply CONTEXT=prod
set -e
# Цвета для вывода
COLOR_RESET='\033[0m'
COLOR_BOLD='\033[1m'
COLOR_CYAN='\033[36m'
COLOR_YELLOW='\033[33m'
# Функция для вывода помощи
show_help() {
echo -e "${COLOR_BOLD}${COLOR_CYAN}Makefile Wrapper - Поддержка подкоманд${COLOR_RESET}"
echo ""
echo "Использование:"
echo " ./make-wrapper.sh docker build"
echo " ./make-wrapper.sh docker tag"
echo " ./make-wrapper.sh docker push"
echo " ./make-wrapper.sh git status"
echo " ./make-wrapper.sh git pull"
echo " ./make-wrapper.sh git push origin main"
echo " ./make-wrapper.sh git add file1 file2"
echo " ./make-wrapper.sh git commit \"message\""
echo " ./make-wrapper.sh k8s contexts"
echo " ./make-wrapper.sh k8s apply CONTEXT=prod"
echo " ./make-wrapper.sh env check"
echo " ./make-wrapper.sh env create"
echo ""
echo "Или используйте напрямую:"
echo " make docker CMD=build"
echo " make git CMD=push ARGS=origin main"
echo " make k8s CMD=apply CONTEXT=prod"
echo " make env CMD=check"
}
# Проверка аргументов
if [ $# -eq 0 ]; then
show_help
exit 0
fi
# Получаем команду (docker, git, k8s, env)
CMD_TYPE=$1
shift
# Обработка команд
case "$CMD_TYPE" in
docker)
if [ $# -eq 0 ]; then
make docker
else
SUB_CMD=$1
shift
make docker CMD="$SUB_CMD" "$@"
fi
;;
git)
if [ $# -eq 0 ]; then
make git
else
SUB_CMD=$1
shift
# Для git commit и git add нужны аргументы
if [ "$SUB_CMD" = "commit" ] || [ "$SUB_CMD" = "add" ]; then
ARGS="$@"
make git CMD="$SUB_CMD" ARGS="$ARGS"
else
# Для остальных команд аргументы передаются как есть
make git CMD="$SUB_CMD" ARGS="$@"
fi
fi
;;
k8s)
if [ $# -eq 0 ]; then
make k8s
else
SUB_CMD=$1
shift
# Обработка CONTEXT=value
CONTEXT_ARG=""
ARGS=""
for arg in "$@"; do
if [[ "$arg" == CONTEXT=* ]]; then
CONTEXT_ARG="$arg"
else
ARGS="$ARGS $arg"
fi
done
if [ -n "$CONTEXT_ARG" ]; then
make k8s CMD="$SUB_CMD" $CONTEXT_ARG "$ARGS"
else
make k8s CMD="$SUB_CMD" "$ARGS"
fi
fi
;;
env)
if [ $# -eq 0 ]; then
make env
else
SUB_CMD=$1
shift
# Для create-force нужно обработать
if [ "$SUB_CMD" = "create-force" ]; then
make env-create-force
else
make env CMD="$SUB_CMD" "$@"
fi
fi
;;
help|--help|-h)
show_help
exit 0
;;
*)
# Если это не подкоманда, передаем в make напрямую
make "$CMD_TYPE" "$@"
;;
esac