# Maintainer: David Runge <dvzrv@archlinux.org>

pkgname=postorius
pkgver=1.3.5
pkgrel=1
pkgdesc="The New Mailman Web UI"
arch=('any')
url="https://gitlab.com/mailman/postorius"
license=('GPL3')
depends=('python-cmarkgfm' 'python-django' 'python-django-mailman3'
'python-mailmanclient' 'python-readme-renderer')
makedepends=('python-setuptools')
checkdepends=('mailman3' 'python-beautifulsoup4' 'python-isort' 'python-mock'
'python-pytest' 'python-pytest-django' 'python-vcrpy')
optdepends=('mailman3: for configuring a local mailman instance'
            'uwsgi-plugin-python: for running inside uwsgi')
replaces=('python-django-postorius')
backup=("etc/uwsgi/${pkgname}.ini"
        "etc/webapps/${pkgname}/settings_local.py"
        "etc/webapps/${pkgname}/urls.py"
)
install="${pkgname}.install"
source=("https://files.pythonhosted.org/packages/source/${pkgname::1}/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.asc}
        "${pkgname}-1.3.2-settings.patch"
        "${pkgname}.sysusers"
        "${pkgname}.tmpfiles"
        "${pkgname}.uwsgi"
)
sha512sums=('f5f90ade87ae028fe665918b0aef69ac6c79f8d45ee4d105825ed9113661f084f3a82db9ac6ee850fa0feb5fd5afe7b66e49040d22c2e0599a95c3aa8ad56a31'
            'SKIP'
            '53713874043e368c71543966e878ff7a49f03088b7ebcff9487935bef2c20a57a561a122dd6b4cbde126c25b935871288dadd7693b831a94b8f27da52afeaa0c'
            '3884b818da2deb148279e50316f720c95f0aaa529777b1b3662d8ab253cda823a90682a9eb47e941ca5ba80eefcb9a2d4afacd29f0340d7f9828b36ebcee23b3'
            '44925c7ce6d1c13bd5bdd2cb449fa978b8eaadaac7ecff74075c23a13478decc4acd1f2cd0399bf55c312d6a08985a3e80f6e7a6e85be9e3dcb93ffb526ca9fb'
            'c042f00d0d8dc72dadd19023152e55246c4d7a4b9d53bca3a05e7b8cb38cac5116417440d4ae82350820c7cb0cd414dcce45fa6af9be19296c4ebd0862dba896')
b2sums=('85f3408b7205ce4f89c36906280ff7ccecca0752ae611f4631e16d43972d0b52321be0f533fdabe6bf7d503120ab7a3794ef25f64a72369dec782b60347e33bb'
        'SKIP'
        'c4017fe87b8743ae516e360be97efd767d726b043733a6dd880503e796e28f65c9ad5924b0fef53281e4fa73a1a329e818baedbe5dbbc0dc07db2af0cf25f1b7'
        '1ef6dc98c6751e6d65e49812d08d813879b791a7f13622ea31ecadae6dd1859a918761d7723732ed2e4872b9cae61b84c8dbfec2dd2522de9f0929a1ee1cec24'
        '502d59cb0009b7cdf108a1611d17470d1a73c2d06bf6d9509799b63d4bbb4bb0a2cb71a39eddb0dc5990ee6489625174de6ce2d7e04e77a601c90a6da6d69c84'
        '4b80d60c88d46edd0e6e61ad2ff37ba3568c6c56a2abd449f903f7302aeec4a3bc91bbd3ee846731513fa1906df2e3d7d1c52b75a55214051fb96b048f9b4999')
validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <raj.abhilash1@gmail.com>

prepare() {
  cd "$pkgname-$pkgver"
  # patch global paths into settings.py
  patch -Np1 -i "../${pkgname}-1.3.2-settings.patch"
  touch settings_local.py
  # increase the maximum allowed version of django to 3.2
  # https://gitlab.com/mailman/postorius/-/merge_requests/645
  sed -e 's/<3.2/<3.3/g' -i setup.py
}

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

check() {
  cd "$pkgname-$pkgver/example_project"
  export PYTHONPATH="../build/lib:${PYTHONPATH}"
  PYTHONDONTWRITEBYTECODE=1 \
  pytest -v ../build/lib/${pkgname}
}

package() {
  cd "$pkgname-$pkgver"
  python setup.py install --skip-build \
                          --optimize=1 \
                          --root="${pkgdir}"
  # django project
  install -vDm 644 example_project/{__init__,manage,settings,wsgi}.py \
    -t "${pkgdir}/usr/share/webapps/${pkgname}"
  # symlink locale and static dirs to state dir
  ln -svf "/var/lib//${pkgname}/locale/" \
    "${pkgdir}/usr/share/webapps/${pkgname}"
  ln -svf "/var/lib/${pkgname}/static/" \
    "${pkgdir}/usr/share/webapps/${pkgname}"
  # state dir
  install -vdm 750 "${pkgdir}/var/lib/${pkgname}/data"
  install -vdm 755 "${pkgdir}/var/lib/${pkgname}/"{locale,static}
  # log dir
  install -vdm 750 "${pkgdir}/var/log/${pkgname}"
  # config
  install -vDm 640 settings_local.py example_project/urls.py \
    -t "${pkgdir}/etc/webapps/${pkgname}"
  ln -svf "/etc/webapps/${pkgname}/settings_local.py" \
    "${pkgdir}/usr/share/webapps/${pkgname}/settings_local.py"
  ln -svf "/etc/webapps/${pkgname}/urls.py" \
    "${pkgdir}/usr/share/webapps/${pkgname}/urls.py"
  # uwsgi
  install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini"
  # tmpfiles.d
  install -vDm 644 "../${pkgname}.tmpfiles" \
    "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
  # sysusers.d
  install -vDm 644 "../${pkgname}.sysusers" \
    "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
}
