#!/usr/bin/env bash
#
# Script to build the IDF Tools installer for Windows with Inno Setup.
# This script should be executed inside wine-innosetup docker image.
#
# - Downloads all tools to install into the "dist/" directory
# - Downloads 7z and idf_versions.txt
# - Runs ISCC under wine to compile the installer itself

set -e
set -u

iscc_path=$(which iscc)
if [[ -z "$iscc_path" ]]; then
    echo "Inno setup compiler (iscc) not found. Are you running wine-innosetup Docker image?"
    exit 1
fi

if [[ -z "${IDF_PATH:-}" ]]; then
    export IDF_PATH=$(cd ../../../; pwd)
    echo "Assuming IDF_PATH: ${IDF_PATH}"
fi

echo "Downloading IDF Tools..."
mkdir -p idf_tools_tmp
export IDF_TOOLS_PATH=$PWD/idf_tools_tmp
$IDF_PATH/tools/idf_tools.py --non-interactive download --platform Windows-x86_64 all
$IDF_PATH/tools/idf_tools.py --tools-json tools_fallback.json --non-interactive download --platform Windows-x86_64 all
mkdir -p dist
cp idf_tools_tmp/dist/* dist/

echo "Downloading 7z..."
mkdir -p unzip
pushd unzip
wget --no-verbose -O 7z1900-extra.7z https://www.7-zip.org/a/7z1900-extra.7z
7zr e -y 7z1900-extra.7z
popd

echo "Downloading idf_versions.txt..."
wget --no-verbose -O idf_versions.txt https://dl.espressif.com/dl/esp-idf/idf_versions.txt

echo "Running ISCC..."
iscc idf_tool_setup.iss
