secubox-openwrt/package/secubox/secubox-app-netifyd/test-build.sh

158 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
#
# Netifyd Build Test Script
# Tests the netifyd package build process
#
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OPENWRT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
echo "================================"
echo "Netifyd 5.2.1 Build Test"
echo "================================"
echo ""
echo "OpenWrt Root: $OPENWRT_ROOT"
echo "Package Dir: $SCRIPT_DIR"
echo ""
# Check if we're in OpenWrt buildroot
if [ ! -f "$OPENWRT_ROOT/rules.mk" ]; then
echo "ERROR: Not in OpenWrt buildroot"
echo "Please run this script from the OpenWrt tree"
exit 1
fi
cd "$OPENWRT_ROOT"
echo "Step 1: Checking dependencies..."
echo "================================"
# Check for required tools
for tool in make gcc g++ wget tar patch; do
if ! command -v $tool &> /dev/null; then
echo "ERROR: Required tool not found: $tool"
exit 1
fi
echo "$tool"
done
echo ""
echo "Step 2: Updating feeds..."
echo "================================"
./scripts/feeds update -a || true
./scripts/feeds install -a || true
echo ""
echo "Step 3: Checking package configuration..."
echo "================================"
if [ ! -f "$SCRIPT_DIR/Makefile" ]; then
echo "ERROR: Makefile not found"
exit 1
fi
echo " ✓ Makefile exists"
if [ ! -f "$SCRIPT_DIR/files/netifyd.init" ]; then
echo "ERROR: Init script not found"
exit 1
fi
echo " ✓ Init script exists"
if [ ! -f "$SCRIPT_DIR/files/netifyd.config" ]; then
echo "ERROR: Config file not found"
exit 1
fi
echo " ✓ Config file exists"
echo ""
echo "Step 4: Preparing build..."
echo "================================"
# Ensure menuconfig has been run
if [ ! -f ".config" ]; then
echo "WARNING: .config not found, running defconfig..."
make defconfig
fi
echo ""
echo "Step 5: Downloading source..."
echo "================================"
make package/secubox/secubox-app-netifyd/download V=s
echo ""
echo "Step 6: Checking source..."
echo "================================"
if [ -f "dl/netifyd-5.2.1.tar.gz" ]; then
echo " ✓ Source downloaded successfully"
ls -lh dl/netifyd-5.2.1.tar.gz
else
echo "ERROR: Source not downloaded"
exit 1
fi
echo ""
echo "Step 7: Cleaning previous build..."
echo "================================"
make package/secubox/secubox-app-netifyd/clean V=s
echo ""
echo "Step 8: Building package..."
echo "================================"
echo "This may take several minutes..."
echo ""
if make package/secubox/secubox-app-netifyd/compile V=s; then
echo ""
echo "================================"
echo "BUILD SUCCESSFUL!"
echo "================================"
echo ""
# Find built package
PKG_FILE=$(find bin/packages -name "netifyd_5.2.1-*.ipk" 2>/dev/null | head -1)
if [ -n "$PKG_FILE" ]; then
echo "Package built successfully:"
ls -lh "$PKG_FILE"
echo ""
echo "Install with:"
echo " scp $PKG_FILE root@router:/tmp/"
echo " ssh root@router 'opkg install /tmp/$(basename $PKG_FILE)'"
else
echo "WARNING: Package file not found in bin/packages"
fi
else
echo ""
echo "================================"
echo "BUILD FAILED!"
echo "================================"
echo ""
echo "Check the build log above for errors"
exit 1
fi
echo ""
echo "Step 9: Verifying package contents..."
echo "================================"
if [ -n "$PKG_FILE" ]; then
echo "Package contents:"
tar -tzf "$PKG_FILE" 2>/dev/null | head -20
echo " ... (showing first 20 files)"
fi
echo ""
echo "================================"
echo "Build test completed successfully!"
echo "================================"
echo ""
echo "Next steps:"
echo "1. Install package on target device"
echo "2. Run: /etc/init.d/netifyd start"
echo "3. Check status: netifyd -s"
echo "4. View dashboard: luci-app-secubox-netifyd"
echo ""