#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl coreutils common-updater-scripts
set -eu -o pipefail

currentVersion=$(nix-instantiate --eval -E "with import ./. {}; iterm2.version or (lib.getVersion iterm2)" | tr -d '"')

downloadUrls=$(
  curl -sL "https://iterm2.com/downloads.html" |
  grep -o -E 'href="[^"]*iTerm2[^"]*\.zip"' |
  sed 's/href="//;s/"//'
)
downloadUrl=$(echo "$downloadUrls" | head -1)

if [[ -z "$downloadUrl" ]]; then
  echo >&2 "Failed to extract download url from iTerm2 downloads page"
  exit 1
fi

version=$(echo "$downloadUrl" | sed -E '
  s/.*iTerm2-?//    # Remove iTerm2 link prefix from download url
  s/[vV]//          # Remove version "v" prefix
  s/\.zip$//        # Remove .zip extension
  s/_/./g           # Convert underscores to dots
')

# iterm2 is already up to date
if [[ "$version" == "$currentVersion" ]]; then
  exit 0
fi

# Update package version
#
source=$(nix-prefetch-url "$downloadUrl" --unpack --name "iterm2-$version")
hash=$(nix-hash --to-sri --type sha256 "$source")

update-source-version iterm2 $version $hash --ignore-same-version --ignore-same-hash
