Delete build.sh
This commit is contained in:
parent
fdf4c92cd3
commit
d543ed14e1
255
build.sh
255
build.sh
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user