diff --git a/.gitignore b/.gitignore index 8dec80f..b01aba7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ logs/ tmp/ pid/ dist/ -scripts/upload-package.sh # Issue creation scripts (these create issues, don't version them) scripts/gitea-issues/ diff --git a/.version_history b/.version_history index 7a0a930..4620235 100644 --- a/.version_history +++ b/.version_history @@ -13,4 +13,3 @@ 25a29c32,0c59b27,main,2025-09-03T09:02:41Z,michael,git,lua-api 25a29c32,589dccc,main,2025-09-03T10:16:05Z,michael,git,lua-api 25a29c32,53ef8ad,main,2025-09-03T10:23:47Z,michael,git,lua-api -25a29c32,eb64c39,main,2025-09-03T18:25:18Z,michael,git,lua-api diff --git a/scripts/build-package.sh b/scripts/build-package.sh deleted file mode 100755 index e0b3434..0000000 --- a/scripts/build-package.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash -# scripts/build-package.sh -# Clean package creation for furt API Gateway -# Creates distribution-ready packages excluding development files - -set -euo pipefail - -# Colors für Output (nur ASCII) -GREEN='\033[0;32m' -BLUE='\033[0;34m' -YELLOW='\033[1;33m' -RED='\033[0;31m' -NC='\033[0m' - -log_info() { - echo -e "${BLUE}[INFO]${NC} $1" -} - -log_success() { - echo -e "${GREEN}[OK]${NC} $1" -} - -log_warn() { - echo -e "${YELLOW}[WARN]${NC} $1" -} - -log_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# Version bestimmen -get_version() { - local version="" - - if [[ $# -gt 0 ]]; then - version="$1" - elif [[ -f "VERSION" ]]; then - version=$(cat VERSION | tr -d '\n\r' | sed 's/^v//') - elif git rev-parse --git-dir >/dev/null 2>&1; then - version=$(git describe --tags --abbrev=0 2>/dev/null | sed 's/^v//') - if [[ -z "$version" ]]; then - version="0.1.0-$(git rev-parse --short HEAD)" - fi - else - version="0.1.0-$(date +%Y%m%d)" - fi - - echo "$version" -} - -# Validiere Projekt-Verzeichnis -validate_project() { - if [[ ! -d "src" ]] || [[ ! -f "src/main.lua" ]]; then - log_error "Nicht im furt-Projektverzeichnis oder src/main.lua fehlt" - exit 1 - fi - - if [[ ! -d "config" ]]; then - log_error "config/ Verzeichnis fehlt" - exit 1 - fi - - log_success "Projekt-Struktur validiert" -} - -# Erstelle sauberes Paket mit VCS-Detection -create_package() { - local version="$1" - local package_name="furt-api-gateway-v${version}.tar.gz" - - log_info "Erstelle Paket: $package_name" - - # Erstelle dist/ Verzeichnis falls nicht vorhanden - mkdir -p dist/ - - # VCS-Detection für saubere Archive (wie bei merkwerk) - if git rev-parse --git-dir >/dev/null 2>&1; then - log_info "Using git archive..." - git archive --format=tar.gz --prefix=furt-api-gateway-v${version}/ HEAD > "dist/$package_name" - elif hg root >/dev/null 2>&1; then - log_info "Using hg archive..." - hg archive -t tgz -p furt-api-gateway-v${version}/ "dist/$package_name" - elif bzr info >/dev/null 2>&1; then - log_info "Using bzr export..." - bzr export --format=tgz "dist/$package_name" --root=furt-api-gateway-v${version}/ - elif fossil info >/dev/null 2>&1; then - log_info "Using fossil tarball..." - fossil tarball --name furt-api-gateway-v${version} "dist/$package_name" HEAD - else - log_info "No VCS detected, using secure tar exclusions..." - tar -czf "dist/$package_name" \ - --exclude='.git*' --exclude='.hg*' --exclude='.bzr*' --exclude='_FOSSIL_*' \ - --exclude='dist' --exclude='*.tmp' --exclude='*~' \ - --exclude='.env*' --exclude='*secret*' --exclude='*key*' \ - --exclude='*.log' --exclude='*.pid' --exclude='.DS_Store' \ - --exclude='debug.log' --exclude='furt.pid' \ - --transform="s,^,furt-api-gateway-v${version}/," \ - . - fi - - # VERSION file in Archive aktualisieren falls nötig - if [[ ! -f "VERSION" ]]; then - log_warn "VERSION file fehlt - wird im Archiv ergänzt" - # Temporär entpacken, VERSION hinzufügen, neu packen - local temp_dir=$(mktemp -d) - tar -xzf "dist/$package_name" -C "$temp_dir" - echo "$version" > "$temp_dir/furt-api-gateway-v${version}/VERSION" - tar -czf "dist/$package_name" -C "$temp_dir" "furt-api-gateway-v${version}" - rm -rf "$temp_dir" - log_info "VERSION file im Archiv ergänzt" - fi - - # Package-Info - local size=$(du -h "dist/$package_name" | cut -f1) - log_success "Paket erstellt: dist/$package_name ($size)" - - # Content-Verification - log_info "Paket-Inhalt:" - tar -tzf "dist/$package_name" | head -20 - if [[ $(tar -tzf "dist/$package_name" | wc -l) -gt 20 ]]; then - log_info " ... und $(( $(tar -tzf "dist/$package_name" | wc -l) - 20 )) weitere Dateien" - fi -} - -# Hilfe anzeigen -show_help() { - echo "build-package.sh - Furt Package Builder" - echo "" - echo "Usage: $0 [VERSION]" - echo "" - echo "VERSION:" - echo " Explicit version string (e.g., 1.0.0)" - echo " If not provided, uses VERSION file or git tags" - echo "" - echo "Examples:" - echo " $0 # Auto-detect version" - echo " $0 1.0.0 # Explicit version" - echo " $0 1.1.0-rc1 # Pre-release" - echo "" - echo "Output: dist/furt-api-gateway-vVERSION.tar.gz" -} - -# Main -main() { - if [[ $# -gt 0 ]] && [[ "$1" == "-h" || "$1" == "--help" ]]; then - show_help - exit 0 - fi - - log_info "Furt Package Builder" - - validate_project - - local version - version=$(get_version "$@") - log_info "Version: $version" - - create_package "$version" - - log_success "Package build abgeschlossen!" - log_info "" - log_info "Nächste Schritte:" - log_info " 1. Upload: ./scripts/upload-package.sh $version" - log_info " 2. Test: tar -tzf dist/furt-api-gateway-v$version.tar.gz" -} - -main "$@" -