from setuptools import setup

import configparser
import os
import time

from cic_cache.version import (
        version_object,
        version_string
        )

class PleaseCommitFirstError(Exception):
    pass

def git_hash():
    import subprocess
    git_diff = subprocess.run(['git', 'diff'], capture_output=True)
    if len(git_diff.stdout) > 0:
        raise PleaseCommitFirstError()
    git_hash = subprocess.run(['git', 'rev-parse', 'HEAD'], capture_output=True)
    git_hash_brief = git_hash.stdout.decode('utf-8')[:8]
    return git_hash_brief

version_string = str(version_object)

try:
    version_git = git_hash()
    version_string += '+build.{}'.format(version_git)
except FileNotFoundError:
    time_string_pair = str(time.time()).split('.')
    version_string += '+build.{}{:<09d}'.format(
            time_string_pair[0],
            int(time_string_pair[1]),
            )
print('final version string will be {}'.format(version_string))

requirements = []
f = open('requirements.txt', 'r')
while True:
    l = f.readline()
    if l == '':
        break
    requirements.append(l.rstrip())
f.close()

test_requirements = []
f = open('test_requirements.txt', 'r')
while True:
    l = f.readline()
    if l == '':
        break
    test_requirements.append(l.rstrip())
f.close()


setup(
    version=version_string,
    install_requires=requirements,
    tests_require=test_requirements,
        )