# Maintainer: lilydjwg <lilydjwg@gmail.com>
# Contributor: Steven De Bondt <egnappah at gmail dot com>

pkgname=graphite-web
pkgver=1.1.10
pkgrel=16
pkgdesc="a Django-based web application that renders graphs and dashboards"
url="https://github.com/graphite-project/graphite-web"
license=('Apache-2.0')
depends=('python-pytz' 'python-six' 'python-cairo' 'python-pyparsing' 'python-django' 'python-django-tagging' 'gunicorn')
makedepends=('python-setuptools')
optdepends=('python-flask-cache: for caching'
            'python-raven: for sentry support'
            'python-whisper: whisper support'
            'nginx: run the web interface')
arch=('any')
backup=('etc/graphite/local_settings.py')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/graphite-project/${pkgname}/archive/${pkgver}.tar.gz"
        https://github.com/graphite-project/graphite-web/commit/e7d08e6af65c47c5a5dd6421c5b352d7ac3d381c.patch
        imp.patch
        "local_settings.py"
        "graphite-web.service" "graphite-web.socket"
        "graphite-web-setup")
sha256sums=('1ac42a2871ea58b76b42aa3671affb87c7a92616e949bf1312fca831075a501b'
            'f6cd36e00b3ba3cf77bb806e9db705c1396c4a449179e395f4b75658ee2ea854'
            'f51af4a248c1f9ab3f96903c6ad44c5e378d9d79c30e90bffae7af9c90d602fa'
            'aaf70cb4d900e878693fb2c93a290b5e0d98c3ebfd3a113b55c178dd63b6e3b5'
            'b20c2bddcbe6520bf61fa53c16919982efa5754e98a3cadaa0887ca028d87f65'
            '318238773e37e1297d1eaf4c7b9e5dc9e8ae74298c381034b5476b14f0ab76bf'
            '0bd6750052b13ee44fa8430a1dc4ffa2da74eba932bb06978fe00ca94aaa7212')

prepare() {
  cd "$srcdir/$pkgname-$pkgver"
  patch -Np1 < ../e7d08e6af65c47c5a5dd6421c5b352d7ac3d381c.patch
  patch -d webapp/graphite -Np1 < ../imp.patch
}

build() {
  cd "$srcdir/$pkgname-$pkgver"
  python setup.py build

  #Dirty Fixing old django references
  sed -i 's/django.conf.urls/django.urls/g' \
    webapp/graphite/account/urls.py webapp/graphite/browser/urls.py \
    webapp/graphite/composer/urls.py webapp/graphite/dashboard/urls.py \
    webapp/graphite/events/urls.py webapp/graphite/functions/urls.py \
    webapp/graphite/metrics/urls.py webapp/graphite/render/urls.py \
    webapp/graphite/tags/urls.py webapp/graphite/urls.py \
    webapp/graphite/version/urls.py webapp/graphite/whitelist/urls.py
  sed -i 's/url\b/re_path/g' \
    webapp/graphite/account/urls.py \
    webapp/graphite/browser/urls.py \
    webapp/graphite/composer/urls.py \
    webapp/graphite/dashboard/urls.py \
    webapp/graphite/events/urls.py \
    webapp/graphite/functions/urls.py \
    webapp/graphite/metrics/urls.py \
    webapp/graphite/render/urls.py \
    webapp/graphite/tags/urls.py \
    webapp/graphite/urls.py \
    webapp/graphite/version/urls.py \
    webapp/graphite/whitelist/urls.py
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  python setup.py install --root="${pkgdir}/" --optimize=1

  rm -r "$pkgdir/opt/graphite/storage"
  mkdir -p "$pkgdir/etc/graphite"
  install -Dm0644 "$srcdir/local_settings.py" "$pkgdir/etc/graphite/local_settings.py"
  ln -s "/etc/graphite/local_settings.py" "$pkgdir/opt/graphite/webapp/graphite/local_settings.py"
  install -Dm0644 "$srcdir/graphite-web.service" "$pkgdir/usr/lib/systemd/system/graphite-web.service"
  install -Dm0644 "$srcdir/graphite-web.socket" "$pkgdir/usr/lib/systemd/system/graphite-web.socket"
  install -Dm0755 "$srcdir/graphite-web-setup" "$pkgdir/usr/bin/graphite-web-setup"
}
