File: generate

package info (click to toggle)
golang-github-cyberdelia-heroku-go 5.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,156 kB
  • sloc: sh: 38; makefile: 12
file content (50 lines) | stat: -rwxr-xr-x 955 bytes parent folder | download
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"