import glob
import json
import os

# Use setuptools compulsorily, as the distutils doesn't work out well for the
# installation procedure. The 'install_requires' and 'data_files' have better
# support in setuptools.
from setuptools import setup


with open(os.path.join("nixview", "info.json")) as infofile:
    infodict = json.load(infofile)

NAME = infodict["NAME"]
VERSION = infodict["VERSION"]
AUTHOR = infodict["AUTHOR"]
CONTACT = infodict["CONTACT"]
HOMEPAGE = infodict["HOMEPAGE"]
CLASSIFIERS = infodict["CLASSIFIERS"]
DESCRIPTION = infodict["DESCRIPTION"]

README = "README.md"
with open(README) as f:
    description_text = f.read()

packages = [
    "nixview",
    "nixview.data_models",
    "nixview.ui",
    "nixview.util",
]

install_req = ["nixio>=1.4.0", "PyQt5", "matplotlib", "numpy"]

data_files = [("icons", glob.glob(os.path.join("icons", "*.png"))),
              ("icons", glob.glob(os.path.join("icons", "*.ic*"))),
              (".", ["LICENSE"]),
              ("docs", glob.glob(os.path.join("docs", "*.md")))
              ]

setup(
    name=NAME,
    version=VERSION,
    description=DESCRIPTION,
    author=AUTHOR,
    author_email=CONTACT,
    url=HOMEPAGE,
    packages=packages,
    install_requires=install_req,
    include_package_data=True,
    data_files=data_files,
    long_description=description_text,
    long_description_content_type="text/markdown",
    classifiers=CLASSIFIERS,
    license="BSD",
    entry_points={
        "gui_scripts": ["nixview = nixview:main []"],
        "console_scripts": ["nixview = nixview:main []"]
        }
)