#!/bin/bash

set -e

if [ -z "$1" ] || [ -z "$2" ]; then
    echo "Usage: publish_ota.sh <device> <channel>"
    exit 1
fi

DEVICE="$1"
CHANNEL="$2"

BASE_DIR="/home/build/build/securelineos-2026020600"
OTA_ROOT="/var/www/ota-secureline.com/ota"
BUILD_DIR="$BASE_DIR/releases"

#
# Find den nyeste SIGNEREDE OTA update ZIP
#
ZIP=$(find "$BUILD_DIR" -type f -name "${DEVICE}-ota_update-*.zip" | sort -V | tail -n 1)

if [ -z "$ZIP" ]; then
    echo "No OTA update zip found for device: $DEVICE"
    exit 1
fi

#
# Udtræk buildnummer
#
BUILD_NUMBER=$(basename "$ZIP" | sed -E 's/.*([0-9]{10}).*/\1/')

#
# Updateren forventer dette filnavn
#
FILENAME="${DEVICE}-install-${BUILD_NUMBER}.zip"

BUILD_DATE=$(grep "ro.build.date.utc" \
"$BASE_DIR/out/target/product/$DEVICE/system/build.prop" \
| cut -d= -f2)

if [ -z "$BUILD_DATE" ]; then
    echo "Failed reading build date"
    exit 1
fi

DEVICE_DIR="$OTA_ROOT/$DEVICE"

sudo mkdir -p "$DEVICE_DIR"

if sudo test -f "$DEVICE_DIR/$FILENAME"; then
    echo "OTA already exists:"
    echo "$DEVICE_DIR/$FILENAME"
    exit 1
fi

echo "Uploading OTA..."

#
# Publicer OTA med det filnavn Updateren forventer
#
sudo cp "$ZIP" "$DEVICE_DIR/$FILENAME"

#
# Midlertidig bootstrap til ældre Updater-versioner
#
sudo cp "$ZIP" "$OTA_ROOT/$FILENAME"

echo "$BUILD_NUMBER $BUILD_DATE $DEVICE $CHANNEL" \
    | sudo tee "$DEVICE_DIR/$CHANNEL.json" >/dev/null

sudo chmod 644 "$DEVICE_DIR/$FILENAME"
sudo chmod 644 "$OTA_ROOT/$FILENAME"
sudo chmod 644 "$DEVICE_DIR/$CHANNEL.json"

echo "OTA published successfully"
echo "Device: $DEVICE"
echo "Channel: $CHANNEL"
echo "Build: $BUILD_NUMBER"
echo "Build Date: $BUILD_DATE"
echo "OTA File: $FILENAME"
