- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
124 lines
3.5 KiB
Bash
Executable File
124 lines
3.5 KiB
Bash
Executable File
#!/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
|
||
|