Delete build.sh

This commit is contained in:
Григорий Сафронов 2026-03-01 00:56:33 +00:00
parent fdf4c92cd3
commit d543ed14e1

255
build.sh
View File

@ -1,255 +0,0 @@
#!/bin/bash
# /futriis/build.sh
# Bash-скрипт для сборки проекта futriis на Unix-системах (Solaris, OpenIndiana, Linux)
# При запуске без параметров выполняет полную сборку проекта: установка зависимостей,
# сборка сервера, сборка клиента и очистка кеша.
# Цвета для вывода
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# Проверка операционной системы
UNAME_S=$(uname -s)
if [ "$UNAME_S" != "Linux" ] && [ "$UNAME_S" != "SunOS" ]; then
echo -e "${RED}Ошибка: Операционная система $UNAME_S не поддерживается. Проект поддерживает только Solaris, OpenIndiana и Linux.${NC}"
exit 1
fi
# Переменные
BINARY_NAME="futriis"
SERVER_BINARY_NAME="futriisd"
BUILD_DIR="build"
CMD_DIR="./cmd/futriis"
# Функция для отображения разделителя
print_separator() {
echo -e "${CYAN}════════════════════════════════════════════════════════════════${NC}"
}
# Функция для отображения заголовка
print_header() {
echo -e "${YELLOW}$1${NC}"
}
# Функция для отображения успеха
print_success() {
echo -e "${GREEN}$1${NC}"
}
# Функция для отображения ошибки
print_error() {
echo -e "${RED}$1${NC}"
}
# Создание директории для сборки
create_build_dir() {
if [ ! -d "$BUILD_DIR" ]; then
mkdir -p "$BUILD_DIR"
mkdir -p "$BUILD_DIR/plugins"
mkdir -p "$BUILD_DIR/data"
print_success "Создана директория сборки: $BUILD_DIR"
fi
}
# Установка зависимостей
deps() {
print_header "Установка зависимостей..."
go mod download
if [ $? -ne 0 ]; then
print_error "Ошибка при загрузке зависимостей"
return 1
fi
go mod tidy
if [ $? -ne 0 ]; then
print_error "Ошибка при обновлении go.mod"
return 1
fi
print_success "Зависимости установлены"
return 0
}
# Сборка клиента
build_client() {
print_header "Сборка клиента для $UNAME_S..."
create_build_dir
go build -ldflags="-s -w" -o "$BUILD_DIR/$BINARY_NAME" "$CMD_DIR"
if [ $? -eq 0 ]; then
print_success "Клиент собран: $BUILD_DIR/$BINARY_NAME"
return 0
else
print_error "Ошибка сборки клиента"
return 1
fi
}
# Сборка сервера
build_server() {
print_header "Сборка сервера для $UNAME_S..."
create_build_dir
go build -ldflags="-s -w" -o "$BUILD_DIR/$SERVER_BINARY_NAME" "$CMD_DIR"
if [ $? -eq 0 ]; then
print_success "Сервер собран: $BUILD_DIR/$SERVER_BINARY_NAME"
return 0
else
print_error "Ошибка сборки сервера"
return 1
fi
}
# Очистка кеша Go
clean_cache() {
print_header "Очистка кеша сборки Go..."
go clean -cache
if [ $? -eq 0 ]; then
print_success "Кеш сборки очищен"
return 0
else
print_error "Ошибка при очистке кеша"
return 1
fi
}
# Полная сборка проекта
full_build() {
echo
print_separator
echo -e "${GREEN} F U T R I I S - Полная сборка проекта${NC}"
print_separator
echo
local errors=0
# Шаг 1: Установка зависимостей
deps
if [ $? -ne 0 ]; then
errors=$((errors + 1))
fi
echo
# Шаг 2: Сборка сервера
build_server
if [ $? -ne 0 ]; then
errors=$((errors + 1))
fi
echo
# Шаг 3: Сборка клиента
build_client
if [ $? -ne 0 ]; then
errors=$((errors + 1))
fi
echo
# Шаг 4: Очистка кеша
clean_cache
if [ $? -ne 0 ]; then
errors=$((errors + 1))
fi
echo
# Итоговый отчёт
print_separator
if [ $errors -eq 0 ]; then
echo -e "${GREEN}✅ СБОРКА УСПЕШНО ЗАВЕРШЕНА${NC}"
echo -e "${GREEN} Сервер: $BUILD_DIR/$SERVER_BINARY_NAME${NC}"
echo -e "${GREEN} Клиент: $BUILD_DIR/$BINARY_NAME${NC}"
else
echo -e "${RED}❌ СБОРКА ЗАВЕРШЕНА С ОШИБКАМИ ($errors ошибок)${NC}"
fi
print_separator
echo
# Показываем размер бинарных файлов
if [ -f "$BUILD_DIR/$SERVER_BINARY_NAME" ]; then
SERVER_SIZE=$(du -h "$BUILD_DIR/$SERVER_BINARY_NAME" | cut -f1)
echo -e "Размер сервера: ${YELLOW}$SERVER_SIZE${NC}"
fi
if [ -f "$BUILD_DIR/$BINARY_NAME" ]; then
CLIENT_SIZE=$(du -h "$BUILD_DIR/$BINARY_NAME" | cut -f1)
echo -e "Размер клиента: ${YELLOW}$CLIENT_SIZE${NC}"
fi
echo
}
# Функция для отображения справки
show_help() {
echo "Использование: ./build.sh [КОМАНДА]"
echo
echo "Доступные команды:"
echo " (без параметров) - полная сборка проекта (зависимости + сервер + клиент + очистка)"
echo " deps - только установка зависимостей"
echo " build - только сборка клиента"
echo " build-server - только сборка сервера"
echo " install - установка проекта в систему"
echo " run - сборка и запуск клиента"
echo " run-server - сборка и запуск сервера"
echo " test - запуск тестов"
echo " clean - очистка директории сборки"
echo " clean-cache - только очистка кеша Go"
echo " help - показать эту справку"
echo
}
# Обработка аргументов командной строки
case "$1" in
deps)
deps
;;
build)
build_client
;;
build-server)
build_server
;;
install)
echo -e "${GREEN}Установка проекта...${NC}"
go install -ldflags="-s -w" "$CMD_DIR"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Установка завершена${NC}"
else
echo -e "${RED}✗ Ошибка установки${NC}"
exit 1
fi
;;
run)
build_client && "./$BUILD_DIR/$BINARY_NAME"
;;
run-server)
build_server && "./$BUILD_DIR/$SERVER_BINARY_NAME" -server -config config.toml
;;
test)
echo -e "${GREEN}Запуск тестов...${NC}"
go test -v ./...
;;
clean)
echo -e "${GREEN}Очистка...${NC}"
rm -rf "$BUILD_DIR"
go clean
echo -e "${GREEN}✓ Очистка завершена${NC}"
;;
clean-cache)
clean_cache
;;
help|"")
if [ "$1" = "" ]; then
full_build
else
show_help
fi
;;
*)
echo -e "${RED}Неизвестная команда: $1${NC}"
show_help
exit 1
;;
esac
exit 0