The local-build.sh script outputs packages to secubox-tools/build/x86-64/ not to bin/packages/*/secubox/ as the deployment script was expecting. Changes: - Updated find commands to look in secubox-tools/build/x86-64/ first - Added fallback to secubox-tools/sdk/bin/packages/ for SDK builds - Improved error messages showing searched paths 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
162 lines
4.3 KiB
Bash
Executable File
162 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Deploy SecuBox AppStore Updates to Router
|
|
#
|
|
# This script rebuilds and deploys the updated packages to your OpenWrt router.
|
|
#
|
|
|
|
set -e # Exit on error
|
|
|
|
# Configuration
|
|
ROUTER_IP="${ROUTER_IP:-192.168.8.191}"
|
|
ROUTER_USER="${ROUTER_USER:-root}"
|
|
BUILD_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
echo "======================================"
|
|
echo "SecuBox AppStore Update Deployment"
|
|
echo "======================================"
|
|
echo ""
|
|
echo "Build directory: $BUILD_DIR"
|
|
echo "Router: $ROUTER_USER@$ROUTER_IP"
|
|
echo ""
|
|
|
|
# Step 1: Rebuild packages
|
|
echo "[1/5] Rebuilding packages..."
|
|
cd "$BUILD_DIR"
|
|
|
|
if [ ! -f "./secubox-tools/local-build.sh" ]; then
|
|
echo "ERROR: local-build.sh not found!"
|
|
echo "Are you in the correct directory?"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Building secubox-core..."
|
|
./secubox-tools/local-build.sh build secubox-core
|
|
|
|
echo "Building luci-app-secubox-admin..."
|
|
./secubox-tools/local-build.sh build luci-app-secubox-admin
|
|
|
|
echo ""
|
|
echo "✓ Packages rebuilt successfully"
|
|
echo ""
|
|
|
|
# Step 2: Find built packages
|
|
echo "[2/5] Locating built packages..."
|
|
|
|
# Packages are in secubox-tools/build/x86-64/ when using local-build.sh
|
|
SECUBOX_CORE_PKG=$(find secubox-tools/build/x86-64 -name "secubox-core_*.ipk" 2>/dev/null | sort -V | tail -1)
|
|
SECUBOX_ADMIN_PKG=$(find secubox-tools/build/x86-64 -name "luci-app-secubox-admin_*.ipk" 2>/dev/null | sort -V | tail -1)
|
|
|
|
# Fallback: check SDK bin directory
|
|
if [ -z "$SECUBOX_CORE_PKG" ]; then
|
|
SECUBOX_CORE_PKG=$(find secubox-tools/sdk/bin/packages -name "secubox-core_*.ipk" 2>/dev/null | sort -V | tail -1)
|
|
fi
|
|
if [ -z "$SECUBOX_ADMIN_PKG" ]; then
|
|
SECUBOX_ADMIN_PKG=$(find secubox-tools/sdk/bin/packages -name "luci-app-secubox-admin_*.ipk" 2>/dev/null | sort -V | tail -1)
|
|
fi
|
|
|
|
if [ -z "$SECUBOX_CORE_PKG" ] || [ -z "$SECUBOX_ADMIN_PKG" ]; then
|
|
echo "ERROR: Could not find built packages!"
|
|
echo "Searched in:"
|
|
echo " - secubox-tools/build/x86-64/"
|
|
echo " - secubox-tools/sdk/bin/packages/"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Found:"
|
|
echo " - $SECUBOX_CORE_PKG"
|
|
echo " - $SECUBOX_ADMIN_PKG"
|
|
echo ""
|
|
|
|
# Step 3: Copy to router
|
|
echo "[3/5] Copying packages to router..."
|
|
|
|
scp "$SECUBOX_CORE_PKG" "$SECUBOX_ADMIN_PKG" "$ROUTER_USER@$ROUTER_IP:/tmp/"
|
|
|
|
echo ""
|
|
echo "✓ Packages copied to router /tmp/"
|
|
echo ""
|
|
|
|
# Step 4: Install on router
|
|
echo "[4/5] Installing packages on router..."
|
|
|
|
ssh "$ROUTER_USER@$ROUTER_IP" << 'ENDSSH'
|
|
set -e
|
|
|
|
cd /tmp
|
|
|
|
echo "Installing secubox-core..."
|
|
opkg install --force-reinstall secubox-core_*.ipk
|
|
|
|
echo "Installing luci-app-secubox-admin..."
|
|
opkg install --force-reinstall luci-app-secubox-admin_*.ipk
|
|
|
|
echo ""
|
|
echo "Installed packages:"
|
|
opkg list-installed | grep secubox | grep -E "(secubox-core|luci-app-secubox-admin)"
|
|
|
|
echo ""
|
|
echo "Restarting RPCD..."
|
|
/etc/init.d/rpcd restart
|
|
|
|
echo ""
|
|
echo "Verifying ACL file..."
|
|
if [ -f /usr/share/rpcd/acl.d/luci-app-secubox-admin.json ]; then
|
|
echo "✓ ACL file exists"
|
|
if grep -q "get_catalog_sources" /usr/share/rpcd/acl.d/luci-app-secubox-admin.json; then
|
|
echo "✓ ACL contains new methods"
|
|
else
|
|
echo "⚠ ACL file missing new methods!"
|
|
fi
|
|
else
|
|
echo "✗ ACL file not found!"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Cleaning up /tmp..."
|
|
rm -f /tmp/secubox-core_*.ipk /tmp/luci-app-secubox-admin_*.ipk
|
|
|
|
ENDSSH
|
|
|
|
echo ""
|
|
echo "✓ Packages installed on router"
|
|
echo ""
|
|
|
|
# Step 5: Verify
|
|
echo "[5/5] Verifying installation..."
|
|
|
|
ssh "$ROUTER_USER@$ROUTER_IP" << 'ENDSSH'
|
|
echo "Testing RPC methods..."
|
|
|
|
# Test catalog sources
|
|
if ubus -S call luci.secubox get_catalog_sources 2>&1 | grep -q "sources"; then
|
|
echo "✓ get_catalog_sources works"
|
|
else
|
|
echo "✗ get_catalog_sources failed"
|
|
fi
|
|
|
|
# Test check updates
|
|
if ubus -S call luci.secubox check_updates 2>&1 | grep -qE "updates|{"; then
|
|
echo "✓ check_updates works"
|
|
else
|
|
echo "✗ check_updates failed"
|
|
fi
|
|
|
|
ENDSSH
|
|
|
|
echo ""
|
|
echo "======================================"
|
|
echo "Deployment Complete!"
|
|
echo "======================================"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Clear your browser cache (Ctrl+Shift+R)"
|
|
echo "2. Reload the LuCI admin interface"
|
|
echo "3. Navigate to Admin Control → Catalog Sources or Updates"
|
|
echo ""
|
|
echo "If issues persist:"
|
|
echo "- Check browser console for errors"
|
|
echo "- Verify ACL permissions: ssh $ROUTER_USER@$ROUTER_IP 'cat /usr/share/rpcd/acl.d/luci-app-secubox-admin.json'"
|
|
echo "- Test RPC: ssh $ROUTER_USER@$ROUTER_IP 'ubus -S call luci.secubox get_catalog_sources'"
|
|
echo ""
|