#!/bin/bash

ACTION=${1}
PROJECT=${2}
LICENSE_NAME=${3}
LICENSE_DESCRIPTION=${4}

ENDPOINT="https://www.googleapis.com/compute/v1"

if [[ -z $1 || -z $2 ]]; then
  echo "Usage: $0 [list|create] PROJECT [LICENSE_NAME] [LICENSE_DESCRIPTION]"
  exit 1
fi

# Authenticate to refresh token.
gcloud compute project-info describe &> /dev/null

# Get the token from the local gcloud file.
TOKEN="$(gcloud auth print-access-token)"

case "${ACTION}" in
  "list")
    if [[ -z "${LICENSE_NAME}" ]]; then
      URL="${ENDPOINT}/projects/${PROJECT}/global/licenses/?access_token=${TOKEN}"
    else
      URL="${ENDPOINT}/projects/${PROJECT}/global/licenses/${LICENSE_NAME}?access_token=${TOKEN}"
    fi
    curl ${URL}
    ;;
  "create")
    if [[ -z "${LICENSE_DESCRIPTION}" ]]; then
      echo "License description required."
      exit 1
    fi
    URL="${ENDPOINT}/projects/${PROJECT}/global/licenses?access_token=${TOKEN}"
    echo "Creating license ID for ${LICENSE_NAME} with description ${LICENSE_DESCRIPTION}"
    LICENSE_INPUT="{\"name\": \"${LICENSE_NAME}\", \"description\": \"${LICENSE_DESCRIPTION}\"}"
    curl -X POST -d "${LICENSE_INPUT}" --header "Content-Type: application/json" "${URL}"
    ;;
  *)
    echo "ACTION must be list or create."
    exit 1
esac
