#!/bin/sh
set -e
errusage() {
  echo "Usage: $0 [--build]" >&2
  exit 1
}
if [ "$1" = "" ]; then
  buildtype=none
elif [ "$1" = "--build" ]; then
  buildtype=local
else
  echo "Error: Invalid argument: $1" >&2
  errusage
fi
if [ "$2" != "" ]; then
  echo "Error: Invalid argument: $2" >&2
  errusage
fi
if ! git --version > /dev/null; then
  echo "Error: git required" >&2
  exit 1
fi
if ! patch --version > /dev/null; then
  echo "Error: patch utility required" >&2
  exit 1
fi
for dir in output work; do
  if [ -e $dir ]; then
    echo "Can't continue because \"$dir\" already exists. Remove or rename it and try again." >&2
    exit 1
  fi
done
mkdir work
cd work
if false; then
  git clone https://github.com/Mirror-Protocol/terra-web-dapp mirror-webapp
  git clone https://github.com/Mirror-Protocol/whitelist whitelist
else
  git clone -b origmain https://github.com/pf-crypto/mirror-webapp-pf mirror-webapp
  git clone https://github.com/pf-crypto/mirror-whitelist-pf whitelist
fi
mkdir mirror-webapp/public/whitelist
cp -a whitelist/* mirror-webapp/public/whitelist/
  # Don't copy .git
cd mirror-webapp
git apply --verbose ../../1_build_git.diff
patch --no-backup-if-mismatch --fuzz=0 -p1 < ../../1_disable_source_maps.diff
patch --no-backup-if-mismatch --fuzz=0 -p1 < ../../1_terra_libs_pkg.diff
git apply --verbose ../../1_readme_git.diff
git apply --verbose ../../1_vercel_json_git.diff
git apply --verbose ../../1_networks_git.diff
git apply --verbose ../../1_constants_git.diff
git apply --verbose ../../1_tax_git.diff
git apply --verbose ../../1_gql_git.diff
git apply --verbose ../../1_price_uusd_git.diff
git apply --verbose ../../1_networks_chainid_git.diff
git apply --verbose ../../1_message_nocontract_git.diff
git apply --verbose ../../1_claim_git.diff
git apply --verbose ../../1_send_classic_git.diff
git apply --verbose ../../1_borrow_not_possible_git.diff
git apply --verbose ../../1_usequery_git.diff
git apply --verbose ../../1_memo_git.diff
git apply --verbose ../../1_astroport_withdraw_warning_git.diff
git apply --verbose ../../1_claim_ust_warning_git.diff
git apply --verbose ../../1_shuttle_warning_git.diff
git apply --verbose ../../1_domain_git.diff
git apply --verbose ../../1_domain_tokenlists_git.diff
git apply --verbose ../../1_github_git.diff
git apply --verbose ../../1_delist_docs_git.diff
git apply --verbose ../../1_canon_git.diff
git apply --verbose ../../1_community_git.diff
git apply --verbose ../../1_communitypool_git.diff
git apply --verbose ../../1_gov_year_git.diff
patch --no-backup-if-mismatch --fuzz=0 -p1 < ../../2_browserslist.diff
git apply --verbose ../../2_hive_git.diff
git apply --verbose ../../2_reconnect_disconnect_git.diff
git apply --verbose ../../2_pool_git.diff
git apply --verbose ../../2_limit_warning_git.diff
git apply --verbose ../../2_github2_git.diff
git apply --verbose ../../2_caution_webpage_git.diff
git apply --verbose ../../2_gql2_git.diff
git apply --verbose ../../3_hive_v1_git.diff
git apply --verbose ../../3_github_text_link_git.diff
git apply --verbose ../../3_receipt4_git.diff
cd ../..
mkdir output
mkdir output/mirror-src
cp -a work/mirror-webapp output/mirror-src/
rm -rf output/mirror-src/mirror-webapp/.git
rm -rf work
echo "Source downloaded and patched, check \"output\" dir. In the patched source you can run \"./build.js\" or \"node build.js\" to build it."
if [ "$buildtype" = "none" ]; then
  true
elif [ "$buildtype" = "local" ]; then
  echo "Building..."
  mkdir work
  cp -a output/mirror-src/mirror-webapp work/
  cd work/mirror-webapp
  node build.js
  cd ../..
  cp -a work/mirror-webapp/build output/mirror
  echo "Build completed, check \"output\" dir. Remove \"work\" dir if not needed."
else
  echo "Internal error: unknown buildtype" >&2
  exit 1
fi
