#!/bin/bash

set -eu
set -x

# AST2400
PALMETTO_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=palmetto/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/palmetto/obmc-phosphor-image-palmetto.static.mtd'
PALMETTO_MTD="$(basename "$PALMETTO_MTD_URL")"

# AST2500
WITHERSPOON_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon/obmc-phosphor-image-witherspoon.ubi.mtd'
WITHERSPOON_MTD="$(basename "$WITHERSPOON_MTD_URL")"

# AST2600
TACOMA_WIC_XZ_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/obmc-phosphor-image-witherspoon-tacoma.wic.xz'
TACOMA_WIC_XZ="$(basename "$TACOMA_WIC_XZ_URL")"
TACOMA_MMC="$(basename "$TACOMA_WIC_XZ_URL" .xz)"

TACOMA_FITIMAGE_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/fitImage-obmc-phosphor-initramfs-witherspoon-tacoma-witherspoon-tacoma'
TACOMA_FITIMAGE="$(basename "$TACOMA_FITIMAGE_URL")"

TACOMA_KERNEL=$(mktemp --suffix .kernel)
TACOMA_DTB=$(mktemp --suffix .dtb)
TACOMA_INITRD=$(mktemp --suffix .initrd)

cleanup() {
    rm -f "$PALMETTO_MTD"
    rm -f "$WITHERSPOON_MTD"
    rm -f "$TACOMA_WIC_XZ" "$TACOMA_MMC"
    rm -f "$TACOMA_FITIMAGE"
    rm -f "$TACOMA_KERNEL" "$TACOMA_DTB $TACOMA_INITRD"
}

trap cleanup EXIT 2

# AST2400
wget "$PALMETTO_MTD_URL"
# shellcheck disable=SC2016 # 'expect' strings
expect \
    -c "spawn qemu-system-arm \
            -M palmetto-bmc \
            -drive file=${PALMETTO_MTD},if=mtd,format=raw \
            -nographic \
            -net nic \
            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
    -c 'set timeout 120' \
    -c 'expect timeout { exit 1 } "login:"' \
    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
    -c 'expect -i $spawn_id eof'

# AST2500
wget "$WITHERSPOON_MTD_URL"
# shellcheck disable=SC2016 # 'expect' strings
expect \
    -c "spawn qemu-system-arm \
            -M witherspoon-bmc \
            -drive file=${WITHERSPOON_MTD},if=mtd,format=raw \
            -nographic \
            -net nic \
            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
    -c 'set timeout 120' \
    -c 'expect timeout { exit 1 } "login:"' \
    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
    -c 'expect -i $spawn_id eof'

# AST2600
wget "$TACOMA_WIC_XZ_URL"
unxz "$TACOMA_WIC_XZ"
truncate -s 16G "$TACOMA_MMC"

wget "$TACOMA_FITIMAGE_URL"
dumpimage -T flat_dt -p 0 -o "$TACOMA_KERNEL" "$TACOMA_FITIMAGE"
dumpimage -T flat_dt -p 1 -o "$TACOMA_DTB" "$TACOMA_FITIMAGE"
dumpimage -T flat_dt -p 2 -o "$TACOMA_INITRD" "$TACOMA_FITIMAGE"

# shellcheck disable=SC2016 # 'expect' strings
expect \
    -c "spawn qemu-system-arm -M tacoma-bmc \
            -kernel $TACOMA_KERNEL \
            -dtb $TACOMA_DTB \
            -initrd $TACOMA_INITRD \
            -drive file=${TACOMA_MMC},if=sd,format=raw,index=2 \
            -net nic \
            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \
            -nographic \
            -append \"console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a\"" \
    -c 'set timeout 120' \
    -c 'expect timeout { exit 1 } "login:"' \
    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
    -c 'expect -i $spawn_id eof'
