Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
123
make-wrapper.sh
Executable file
123
make-wrapper.sh
Executable file
@@ -0,0 +1,123 @@
|
||||
#!/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
|
||||
|
||||
Reference in New Issue
Block a user