#!/usr/bin/env bash
set -e

resolve_link() {
  $(type -p greadlink readlink | head -1) "$1"
}

abs_dirname() {
  local cwd="$(pwd)"
  local path="$1"

  while [[ -n "$path" ]]; do
    cd "${path%/*}"
    local name="${path##*/}"
    path="$(resolve_link "$name" || true)"
  done

  pwd
  cd "$cwd"
}

install() {
  if [[ "$1" == "-h" ]]; then
    cat >&2 <<USAGE
Install gdub (gw).
usage: $0 <prefix>
  e.g. $0 /usr/local
USAGE
    exit 1
  fi

  local PREFIX="${1:-/usr/local}"
  local GW_ROOT="$(abs_dirname "$0")"

  mkdir -p "${PREFIX}/bin"
  cp -R "${GW_ROOT}/bin/gw" "${PREFIX}/bin"

  echo "Installed gdub (gw) to $PREFIX/bin/gw."
}

install "$@"
