# $Id: PKGBUILD 326606 2018-06-10 01:35:47Z felixonmars $
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>

pkgbase=pylint
pkgname=('python-pylint' 'python2-pylint')
pkgver=1.9.2
pkgrel=1
pkgdesc="Analyzes Python code looking for bugs and signs of poor quality"
arch=('any')
url="http://pylint.org"
license=('GPL')
makedepends=('python-astroid' 'python2-astroid' 'python-setuptools' 'python2-setuptools'
             'python-six' 'python2-six' 'python-isort' 'python2-isort' 'python-mccabe'
             'python2-mccabe' 'python2-backports.functools_lru_cache' 'python2-configparser'
             'python2-singledispatch')
checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'mpdecimal')
optdepends=('tk: Pylint GUI'
            'graphviz: To have other output formats than dot or vcg')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/PyCQA/pylint/archive/pylint-$pkgver.tar.gz")
sha512sums=('5b2f7f00c7ff2ca5e53a9bb616f314a8f1460ec1acd8123407bc73c23a26502d1adb6cffad8020f0c3d9964adf316929fd159c5720f019c5ce6aa8cdc791955d')

prepare() {
  sed -i 's/pytest<3.3/pytest/' pylint-pylint-$pkgver/setup.py

  cp -a pylint-pylint-$pkgver{,-py2}

  cd "$srcdir"/pylint-pylint-$pkgver/pylint
  sed -e "s|/usr/bin/env python|/usr/bin/env python3|" -e "s|/usr/bin/python$|/usr/bin/python3|" -i epylint.py __main__.py test/input/noext test/data/ascript

  cd "$srcdir"/pylint-pylint-$pkgver-py2/pylint
  sed -e "s|/usr/bin/env python|/usr/bin/env python2|" -e "s|/usr/bin/python$|/usr/bin/python2|" -i epylint.py __main__.py test/input/noext test/data/ascript
}

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

  cd "$srcdir"/pylint-pylint-$pkgver-py2
  python2 setup.py build
}

check() {
  cd "$srcdir"/pylint-pylint-$pkgver
  python setup.py pytest

  cd "$srcdir"/pylint-pylint-$pkgver-py2
  python2 setup.py pytest
}

package_python-pylint() {
  depends=('python-astroid' 'python-setuptools' 'python-mccabe' 'python-isort')

  cd pylint-pylint-$pkgver

  python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build --optimize=1

  install -d "$pkgdir"/usr/share/man/man1
  install -m644 man/* "$pkgdir"/usr/share/man/man1
}

package_python2-pylint() {
  depends=('python2-astroid' 'python2-setuptools' 'python2-mccabe' 'python2-isort'
           'python2-backports.functools_lru_cache' 'python2-configparser' 'python2-singledispatch')

  cd pylint-pylint-$pkgver-py2

  python2 setup.py install --prefix=/usr --root="$pkgdir" --skip-build --optimize=1

  install -d "$pkgdir"/usr/share/man/man1
  install -m644 man/* "$pkgdir"/usr/share/man/man1

  for _exe in epylint pylint pyreverse symilar; do
     mv "$pkgdir"/usr/bin/${_exe}{,2}
     mv "$pkgdir"/usr/share/man/man1/${_exe}{,2}.1
  done
}
