1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#!/usr/bin/env bash
set -ex
: ${UPDATE_SCHEMA:=1}
function usage() {
cat <<EOT
$0 [ARGS]
-n suppress download of latest schema
EOT
exit $1
}
while getopts "hnv:" opt; do
case $opt in
n)
UPDATE_SCHEMA=0
;;
h)
usage 1
;;
\?)
usage 0
;;
esac
done
API_VERSION="3"
CLIENT_VERSION="v5"
SCHEMA_FILE="$CLIENT_VERSION/schema.json"
GENERATED_FILE="$CLIENT_VERSION/heroku.go"
NEW_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.."; pwd)"
cd $NEW_DIR
if [ $UPDATE_SCHEMA -eq 1 ]; then
curl -so "$SCHEMA_FILE" https://api.heroku.com/schema \
-H "Accept: application/vnd.heroku+json; version=$API_VERSION"
fi
go install github.com/interagent/schematic/cmd/schematic@7f954c20daa584c8b9a5c13bce4973dbd2539482
schematic "$SCHEMA_FILE" > "$GENERATED_FILE"
sed -E -i '' \
"s/^([[:space:]]*Version[[:space:]]*=[[:space:]]*)\"\"\$/\1\"${CLIENT_VERSION}\"/" \
"$GENERATED_FILE"
gofmt -w "$GENERATED_FILE"
|