#!/bin/bash
set -euo pipefail

if ! ls dist/tv.twitch.tv.starshot* &>/dev/null; then
  echo "No IPK Found. Copy an exisiting IPK to '/dist' or build one with 'yarn build'."
  exit 1
fi

on_exit() {
  rm -r tmp
}

extract_from_appinfo() {
  grep "$1" appinfo.json | cut -d '"' -f4
}

extract_from_config() {
  grep -o "$1:\"[^\"]*" static/js/*.chunk.js | tail -n 1 | sed "s/$1:\"//" || true
}

trap on_exit EXIT

mkdir -p tmp

pushd tmp >/dev/null
ar -x ../dist/tv.twitch.tv.starshot*
tar -zxf control.tar.gz
tar -zxf data.tar.gz
popd >/dev/null

PACKAGE=$(grep '^Package:' tmp/control)
VERSION=$(grep '^Version:' tmp/control)

pushd tmp/usr/palm/applications/tv.twitch.tv.starshot.lg >/dev/null
APP_DESCRIPTION=$(extract_from_appinfo appDescription)
RESOLUTION=$(extract_from_appinfo resolution)
STARSHOT_URL=$(extract_from_config REACT_APP_STARSHOT_URL)
COMMIT=$(extract_from_config REACT_APP_GIT_COMMIT)
SENTRY_DSN=$(extract_from_config REACT_APP_SENTRY_DSN)
popd >/dev/null

cat <<EOF
Analyzed IPK:

${PACKAGE}
${VERSION}
Resolution: ${RESOLUTION}
App Description: "${APP_DESCRIPTION}"
Starshot URL: "${STARSHOT_URL}"
Commit: "${COMMIT}"
Sentry DSN: "${SENTRY_DSN}"

EOF
