Files
venus/mfd-custom-app/package.sh
2026-03-20 13:27:02 +00:00

94 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
#
# Package script for Custom MFD App
#
# Builds the venus-html5-app and packages it into a distributable tarball
# and a venus-data.zip for USB stick deployment.
#
# Usage:
# ./package.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
HTML5_DIR="$PROJECT_ROOT/venus-html5-app"
DIST_NAME="mfd-custom-app"
OUTPUT_DIR="$PROJECT_ROOT"
echo "=================================================="
echo "Packaging Custom MFD App"
echo "=================================================="
if [ ! -d "$HTML5_DIR" ]; then
echo "ERROR: venus-html5-app not found at $HTML5_DIR"
exit 1
fi
if [ ! -f "$HTML5_DIR/package.json" ]; then
echo "ERROR: package.json not found in $HTML5_DIR"
exit 1
fi
echo "1. Building app locally..."
cd "$HTML5_DIR"
CI=false npm run build 2>&1
BUILD_DIR="$HTML5_DIR/dist"
if [ ! -d "$BUILD_DIR" ]; then
echo "ERROR: Build directory not found at $BUILD_DIR"
echo " The build may have failed."
exit 1
fi
echo "3. Assembling package..."
TEMP_DIR=$(mktemp -d)
PKG_DIR="$TEMP_DIR/$DIST_NAME"
mkdir -p "$PKG_DIR/app"
cp -r "$BUILD_DIR/"* "$PKG_DIR/app/"
cp "$SCRIPT_DIR/install.sh" "$PKG_DIR/"
cp "$SCRIPT_DIR/uninstall.sh" "$PKG_DIR/"
cp "$SCRIPT_DIR/apply-nginx-override.sh" "$PKG_DIR/"
chmod +x "$PKG_DIR/install.sh" "$PKG_DIR/uninstall.sh" "$PKG_DIR/apply-nginx-override.sh"
if [ -f "$SCRIPT_DIR/README.md" ]; then
cp "$SCRIPT_DIR/README.md" "$PKG_DIR/"
fi
echo "4. Creating tarball..."
cd "$TEMP_DIR"
tar -czf "$OUTPUT_DIR/${DIST_NAME}.tar.gz" "$DIST_NAME"
echo " Created: $OUTPUT_DIR/${DIST_NAME}.tar.gz"
echo "5. Creating venus-data.zip for USB deployment..."
USB_DIR="$TEMP_DIR/venus-data"
mkdir -p "$USB_DIR/www/app"
cp -r "$BUILD_DIR/"* "$USB_DIR/www/app/"
cd "$TEMP_DIR"
zip -r "$OUTPUT_DIR/venus-data.zip" "venus-data" -x "*.DS_Store"
echo " Created: $OUTPUT_DIR/venus-data.zip"
rm -rf "$TEMP_DIR"
echo ""
echo "=================================================="
echo "Package created!"
echo "=================================================="
echo ""
echo "Deploy via SSH:"
echo " scp $OUTPUT_DIR/${DIST_NAME}.tar.gz root@cerbo:/data/"
echo " ssh root@cerbo 'cd /data && tar xzf ${DIST_NAME}.tar.gz && cd ${DIST_NAME} && ./install.sh'"
echo ""
echo "Deploy via USB:"
echo " Copy venus-data.zip to a USB stick, insert into Cerbo, reboot."
echo ""
read -p "Copy tarball to remote cerbo host? [y/N] " answer
if [[ "$answer" =~ ^[Yy]$ ]]; then
echo "Copying to cerbo..."
scp "$OUTPUT_DIR/${DIST_NAME}.tar.gz" cerbo:/data/
echo "Done."
else
echo "Skipping remote copy."
fi