#!/usr/bin/env bash
# Usage: dgit-cluster-backup-routes
# Emulates the remote GitHub dgit-cluster-backup-routes command. Tests use this
# to assert that all repos and gists get backed up.
set -e

version() {
  echo "${@#v}" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
}

if [ -z "$GHE_REMOTE_VERSION" ]; then
  echo GHE_REMOTE_VERSION must be set for this script to work.
  exit 1
fi

# The list of gists returned by the source changed in 2.16.23, 2.17.14,
# 2.18.8, and 2.19.3.  We need to account for this difference here.
if [[ "$GHE_REMOTE_VERSION" =~ 2.16. && "$(version $GHE_REMOTE_VERSION)" -ge "$(version 2.16.23)" ]] || \
   [[ "$GHE_REMOTE_VERSION" =~ 2.17. && "$(version $GHE_REMOTE_VERSION)" -ge "$(version 2.17.14)" ]] || \
   [[ "$GHE_REMOTE_VERSION" =~ 2.18. && "$(version $GHE_REMOTE_VERSION)" -ge "$(version 2.18.8)" ]] || \
   [[ "$(version $GHE_REMOTE_VERSION)" -ge "$(version 2.19.3)" ]]; then
    echo 0/nw/01/aa/3f/1234 git-server-fake-uuid
    echo 1/nw/23/bb/4c/2345 git-server-fake-uuid1
    echo 0/01/aa/3f/gist/93069ad4c391b6203f183e147d52a97a.git git-server-fake-uuid2
    echo 1/23/bb/4c/gist/1234.git git-server-fake-uuid
else
    echo 0/nw/01/aa/3f/1234 git-server-fake-uuid
    echo 1/nw/23/bb/4c/2345 git-server-fake-uuid1
    echo 0/01/aa/3f/gist git-server-fake-uuid2
    echo 1/23/bb/4c/gist git-server-fake-uuid
fi
