85 lines
2.4 KiB
Bash
85 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e # Остановка при любой ошибке
|
|
|
|
APP_NAME="gpio-monitor-server"
|
|
CMD_PATH="./cmd/server"
|
|
BUILD_DIR="./build"
|
|
|
|
echo "СБОРКА GPIO MONITOR SERVER"
|
|
|
|
# ===== 1. СБОРКА TYPESCRIPT =====
|
|
echo ""
|
|
echo "Шаг 1/4: Сборка TypeScript фронтенда..."
|
|
cd ~/temp/golang/cmd/server/web
|
|
|
|
# Проверяем наличие node_modules
|
|
if [ ! -d "node_modules" ]; then
|
|
echo " Установка npm зависимостей..."
|
|
npm install
|
|
fi
|
|
|
|
# Собираем TypeScript
|
|
echo " Компиляция TypeScript в JavaScript..."
|
|
npm run build
|
|
|
|
if [ -d "dist" ]; then
|
|
echo " TypeScript скомпилирован успешно!"
|
|
echo " Скомпилированные файлы: $(ls dist/ | wc -l) файлов"
|
|
else
|
|
echo " Ошибка: папка dist не создана!"
|
|
exit 1
|
|
fi
|
|
|
|
# ===== 2. ПОДГОТОВКА GO СБОРКИ =====
|
|
echo ""
|
|
echo "Шаг 2/4: Подготовка Go сборки..."
|
|
cd ~/temp/golang
|
|
|
|
echo " Очистка старой сборки..."
|
|
rm -rf ${BUILD_DIR}
|
|
mkdir -p ${BUILD_DIR}
|
|
|
|
echo " Загрузка зависимостей..."
|
|
go mod tidy
|
|
|
|
# ===== 3. КОМПИЛЯЦИЯ GO =====
|
|
echo ""
|
|
echo "Шаг 3/4: Компиляция Go сервера..."
|
|
|
|
# Для Raspberry Pi (ARM64)
|
|
echo " Целевая платформа: Linux ARM64"
|
|
GOOS=linux GOARCH=arm64 go build -o ${BUILD_DIR}/${APP_NAME} ${CMD_PATH}
|
|
|
|
# Проверяем успешность сборки
|
|
if [ -f "${BUILD_DIR}/${APP_NAME}" ]; then
|
|
echo " Go сервер скомпилирован успешно!"
|
|
else
|
|
echo " Ошибка компиляции Go сервера!"
|
|
exit 1
|
|
fi
|
|
|
|
# ===== 4. ФИНАЛЬНЫЕ ДЕЙСТВИЯ =====
|
|
echo ""
|
|
echo "Шаг 4/4: Финальная проверка..."
|
|
|
|
# Проверяем размер
|
|
SIZE=$(ls -lh ${BUILD_DIR}/${APP_NAME} | awk '{print $5}')
|
|
echo " Размер бинарного файла: ${SIZE}"
|
|
|
|
# Проверяем наличие embed файлов
|
|
echo " Проверка встроенных файлов..."
|
|
if [ -d "cmd/server/web/dist" ]; then
|
|
echo " TypeScript файлы (dist) включены в сборку"
|
|
fi
|
|
|
|
if [ -d "cmd/server/web/css" ]; then
|
|
echo " CSS файлы включены в сборку"
|
|
fi
|
|
|
|
if [ -f "cmd/server/web/dashboard.html" ]; then
|
|
echo " HTML файлы включены в сборку"
|
|
fi
|
|
|
|
echo "СБОРКА ЗАВЕРШЕНА!"
|