# Description: The analytics platform for all your metrics
# URL: https://grafana.com/
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: fontconfig git npm wire-go yarn
# Optional: postgresql redis

name=grafana
version=13.0.2
release=1
source=(https://github.com/grafana/grafana/archive/v$version/$name-$version.tar.gz
  grafana.confd grafana.service)

build() {
  export CGO_LDFLAGS="${LDFLAGS}"
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -modcacherw"

  mkdir "$PKGMK_SOURCE_DIR/gopath" || true
  export GOPATH="$PKGMK_SOURCE_DIR/gopath"

  export GOEXPERIMENT=boringcrypto

  cd $SRC/$name-${version/+/-}

  sed -ri 's,^(\s*data\s*=).*,\1 /var/lib/grafana,' conf/defaults.ini
  sed -ri 's,^(\s*plugins\s*=).*,\1 /var/lib/grafana/plugins,' conf/defaults.ini
  sed -ri 's,^(\s*provisioning\s*=).*,\1 /var/lib/grafana/conf/provisioning,' conf/defaults.ini
  sed -ri 's,^(\s*logs\s*=).*,\1 /var/log/grafana,' conf/defaults.ini

  # backend
  wire gen -tags oss ./pkg/server ./pkg/cmd/grafana-cli/runner
  local ldflags="-X main.version=$version"
  make build-go

  # frontend
  export NPM_CONFIG_PREFIX="$SRC/npm"
  export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
  export CYPRESS_INSTALL_BINARY=0
  export NODE_OPTIONS="--max-old-space-size=16000"
  export TS_NODE_TRANSPILE_ONLY=1

  #export PATH="/usr/opt/nodejs-lts-jod/bin:$PATH"

  UV_USE_IO_URING=0 /usr/bin/yarn install
  UV_USE_IO_URING=0 NODE_ENV=production /usr/bin/yarn build

  # install
  install -Dm644 $SRC/$name.confd $PKG/etc/conf.d/$name
  install -Dm755 packaging/wrappers/grafana-server $PKG/usr/bin/grafana-server
  install -Dm755 packaging/wrappers/grafana-cli $PKG/usr/bin/grafana-cli
  install -Dsm755 bin/linux/amd64/grafana $PKG/usr/share/grafana/bin/grafana
  install -Dm644 conf/sample.ini $PKG/etc/grafana.ini
  install -Dm644 conf/defaults.ini $PKG/usr/share/$name/conf/defaults.ini
  install -dm755 $PKG/usr/share/$name
  cp -r public $PKG/usr/share/$name/

  ## install rc file
  install -Dm 755 $SRC/grafana.service $PKG/etc/rc.d/grafana
}
