#!/usr/bin/env bash

set -eu

TYP=$1

usage() {
  echo "usage: ./scripts/vendor <init|update|validate|outdated>"
  exit 1
}

if [ -z "$TYP" ]; then
  usage
fi

update() {
  (set -x ; go mod tidy; go mod vendor)
}

validate() {
  diff=$(git status --porcelain -- vendor.mod vendor.sum vendor)
  if [ -n "$diff" ]; then
    echo >&2 'ERROR: Vendor result differs. Vendor your package with "make -f docker.Makefile vendor"'
    echo "$diff"
    exit 1
  fi
}

outdated() {
  if [ ! -x "$(command -v go-mod-outdated)" ]; then
    echo "go-mod-outdated not found. Install with 'go install github.com/psampaz/go-mod-outdated@v0.8.0'"
    exit 1
  fi
  (set -x ; go list -mod=readonly -u -m -json all | go-mod-outdated -update -direct)
}

case $TYP in
  "update")
    update
    ;;
  "validate")
    update
    validate
    ;;
  "outdated")
    outdated
    ;;
  *)
    echo >&2 "Unknown type $TYP"
    exit 1
    ;;
esac
