From 794a2757e844d6e5330d9df52cfb5ef238004215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 17 May 2026 20:12:09 +0000 Subject: [PATCH] Delete vendor_build.sh --- vendor_build.sh | 264 ------------------------------------------------ 1 file changed, 264 deletions(-) delete mode 100644 vendor_build.sh diff --git a/vendor_build.sh b/vendor_build.sh deleted file mode 100644 index a0b7fb6..0000000 --- a/vendor_build.sh +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2026 Safronov Grigorii -# -# Licensed under the CDDL, Version 1.0 (the "License"); -# you may not use this file except in compliance with the License. -# -# You may obtain a copy of the License at -# https://opensource.org/licenses/CDDL-1.0 -# -# Скрипт сборки futriis с использованием vendoring зависимостей -# Поддерживает Linux и Illumos (OpenIndiana) -# НЕ ТРЕБУЕТ GCC - использует CGO_ENABLED=0 для всех платформ - -# Цвета для вывода -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' - -set -e - -# Функции для вывода сообщений -error_msg() { echo -e "${RED}❌ $1${NC}"; } -success_msg() { echo -e "${GREEN}✅ $1${NC}"; } -info_msg() { echo -e "${BLUE}📋 $1${NC}"; } -warning_msg() { echo -e "${YELLOW}⚠️ $1${NC}"; } -print_separator() { echo "================================================"; } - -# Проверка наличия Go -check_go() { - info_msg "Checking Go installation..." - if ! command -v go &> /dev/null; then - error_msg "Go is not installed or not in PATH" - exit 1 - fi - - GO_VERSION=$(go version | awk '{print $3}') - success_msg "Go found: $GO_VERSION" -} - -# Проверка и создание vendor директории -setup_vendor() { - info_msg "Checking vendor directory..." - - if [ ! -d "vendor" ]; then - warning_msg "Vendor directory not found. Creating vendor dependencies..." - if go mod vendor; then - success_msg "Vendor dependencies created successfully" - else - error_msg "Failed to create vendor dependencies" - exit 1 - fi - else - info_msg "Vendor directory already exists" - - # Проверяем актуальность vendor - if [ -f "go.mod" ] && [ -f "vendor/modules.txt" ]; then - GO_MOD_TIME=$(stat -c %Y "go.mod" 2>/dev/null || stat -f %m "go.mod" 2>/dev/null) - VENDOR_TIME=$(stat -c %Y "vendor/modules.txt" 2>/dev/null || stat -f %m "vendor/modules.txt" 2>/dev/null) - - if [ "$GO_MOD_TIME" -gt "$VENDOR_TIME" ] 2>/dev/null; then - warning_msg "go.mod is newer than vendor directory" - warning_msg "Consider running: go mod vendor" - fi - fi - fi -} - -# Создание директории bin -create_bin_dir() { - mkdir -p bin -} - -# Сборка для указанной ОС (статическая, без CGO) -build_static() { - local target_os=$1 - local target_arch="amd64" - local output_name="futriis-${target_os}-vendor" - - info_msg "Building for ${target_os} (static, no CGO)..." - - export GOOS="${target_os}" - export GOARCH="${target_arch}" - export CGO_ENABLED=0 - - local build_tags="" - if [ "${target_os}" = "illumos" ] || [ "${target_os}" = "solaris" ]; then - build_tags="-tags=illumos" - output_name="futriis-illumos-vendor" - elif [ "${target_os}" = "linux" ]; then - output_name="futriis-linux-vendor" - fi - - local output_path="bin/${output_name}" - - go build -mod=vendor ${build_tags} \ - -ldflags="-s -w -X main.buildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ - -o "${output_path}" ./cmd/futriis - - if [ $? -eq 0 ]; then - success_msg "Build successful for ${target_os}: ${output_path}" - cp "${output_path}" "./${output_name}" 2>/dev/null || true - info_msg "Binary copied to: ./${output_name}" - - SIZE=$(ls -lh "${output_path}" | awk '{print $5}') - info_msg "Binary size: $SIZE" - return 0 - else - error_msg "Build failed for ${target_os}" - return 1 - fi -} - -# Сборка для текущей ОС -build_current() { - local os=$(uname -s | tr '[:upper:]' '[:lower:]') - info_msg "Building for current OS (${os})..." - - export CGO_ENABLED=0 - - local output_path="bin/futriis-current-vendor" - go build -mod=vendor \ - -ldflags="-s -w -X main.buildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ - -o "${output_path}" ./cmd/futriis - - if [ $? -eq 0 ]; then - success_msg "Current OS build successful: ${output_path}" - cp "${output_path}" ./futriis-current-vendor 2>/dev/null || true - info_msg "Binary copied to: ./futriis-current-vendor" - - SIZE=$(ls -lh "${output_path}" | awk '{print $5}') - info_msg "Binary size: $SIZE" - return 0 - else - error_msg "Current OS build failed" - return 1 - fi -} - -# Очистка -clean() { - info_msg "Cleaning binary files..." - rm -f bin/futriis-*-vendor - rm -f ./futriis-*-vendor - success_msg "Clean completed" -} - -clean_vendor() { - info_msg "Cleaning vendor directory..." - rm -rf vendor - success_msg "Vendor directory removed" -} - -# Обновление зависимостей -update_deps() { - info_msg "Updating dependencies..." - go get -u ./... - go mod tidy - go mod vendor - success_msg "Dependencies updated" -} - -# Показать информацию -show_deps() { - info_msg "Project dependencies:" - echo "" - if [ -f "go.mod" ]; then - echo "Direct dependencies:" - go list -m all | head -20 - echo "" - fi - if [ -d "vendor" ]; then - echo "Vendor directory size:" - du -sh vendor 2>/dev/null || echo "Cannot determine size" - echo "" - echo "Number of packages in vendor:" - find vendor -name "*.go" 2>/dev/null | wc -l - fi -} - -# Справка -show_help() { - echo "Usage: $0 [OPTIONS]" - echo "" - echo "Options:" - echo " -h, --help Show this help message" - echo " -c, --clean Clean build artifacts" - echo " -C, --clean-all Clean build artifacts and vendor directory" - echo " -u, --update Update dependencies and rebuild vendor" - echo " -i, --info Show dependency information" - echo " -l, --linux Build only for Linux" - echo " -m, --illumos Build only for Illumos" - echo " -o, --only-os Build only for current OS" - echo "" - echo "Note: All builds use CGO_ENABLED=0 (no GCC required)" -} - -# Основная функция -main() { - print_separator - echo -e "${GREEN}🔨 Building futriis database with vendoring (no GCC required)${NC}" - print_separator - - local os=$(uname -s | tr '[:upper:]' '[:lower:]') - info_msg "Detected OS: $os" - - local BUILD_LINUX=true - local BUILD_ILLUMOS=true - local BUILD_CURRENT=false - - while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) show_help; exit 0 ;; - -c|--clean) clean; exit 0 ;; - -C|--clean-all) clean; clean_vendor; exit 0 ;; - -u|--update) update_deps; exit 0 ;; - -i|--info) show_deps; exit 0 ;; - -l|--linux) BUILD_LINUX=true; BUILD_ILLUMOS=false; BUILD_CURRENT=false; shift ;; - -m|--illumos) BUILD_LINUX=false; BUILD_ILLUMOS=true; BUILD_CURRENT=false; shift ;; - -o|--only-os) BUILD_LINUX=false; BUILD_ILLUMOS=false; BUILD_CURRENT=true; shift ;; - *) error_msg "Unknown option: $1"; show_help; exit 1 ;; - esac - done - - check_go - setup_vendor - create_bin_dir - - print_separator - - local BUILD_FAILED=0 - - if [ "$BUILD_CURRENT" = true ]; then - build_current || BUILD_FAILED=1 - else - if [ "$BUILD_LINUX" = true ]; then - build_static "linux" || BUILD_FAILED=1 - fi - if [ "$BUILD_ILLUMOS" = true ]; then - build_static "illumos" || BUILD_FAILED=1 - fi - fi - - print_separator - - if [ $BUILD_FAILED -eq 0 ]; then - success_msg "All builds completed successfully!" - echo "" - info_msg "Generated binaries:" - ls -lh bin/futriis-*-vendor 2>/dev/null || echo " No binaries in bin/" - echo "" - info_msg "To run the database:" - echo " ./futriis-linux-vendor # On Linux" - echo " ./futriis-illumos-vendor # On Illumos/OpenIndiana" - echo "" - info_msg "Note: All binaries are statically linked and do not require GCC" - else - error_msg "Some builds failed" - exit 1 - fi -} - -main "$@"