"""
Defines how CORE will be built for installation.
"""

import glob
import os

from setuptools import find_packages, setup

_CORE_DIR = "/etc/core"
_MAN_DIR = "share/man/man1"
_EXAMPLES_DIR = "share/core"


def recursive_files(data_path, files_path):
    all_files = []
    for path, _directories, filenames in os.walk(files_path):
        directory = os.path.join(data_path, path)
        files = []
        for filename in filenames:
            files.append(os.path.join(path, filename))
        all_files.append((directory, files))
    return all_files


def glob_files(glob_path):
    return glob.glob(glob_path)


data_files = [
    (_CORE_DIR, [
        "data/core.conf",
        "data/logging.conf",
    ]),
    (_MAN_DIR, glob_files("../man/**.1")),
]
data_files.extend(recursive_files(_EXAMPLES_DIR, "examples"))

setup(
    name="core",
    version="@PACKAGE_VERSION@",
    packages=find_packages(),
    install_requires=[
        "configparser",
        "enum34",
        "future",
        "grpcio",
        "lxml"
    ],
    tests_require=[
        "pytest",
        "pytest-runner",
        "pytest-cov",
        "mock",
    ],
    data_files=data_files,
    scripts=glob.glob("scripts/*"),
    description="Python components of CORE",
    url="https://github.com/coreemu/core",
    author="Boeing Research & Technology",
    license="BSD",
    long_description="Python scripts and modules for building virtual emulated networks.",
)