aboutsummaryrefslogtreecommitdiff
path: root/cbcbuild.py
blob: 66ddaee84ab56cbcaea802ec36fcb9068ea8ca90 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
import cbc
import cbc.server
import conda_build
import conda_build.metadata
import conda_build.build
import threading
import sys


'''Emulated input here
'''
sys.argv.append('tests/data/test.ini')
if len(sys.argv) < 2:
    print("{0} {{cbc_config}}".format(sys.argv[0]))
    exit(1)

os.environ['CBC_HOME'] = os.path.abspath('tests/data/build')
cbcini = os.path.abspath(sys.argv[1])
env = cbc.environment.Environment()
metadata = cbc.meta.MetaData(cbcini, env)

# Write out conda compatible metadata and build scripts
for maskkey, maskval in env.config['script'].items():
    for metakey, metaval in metadata.compile().items():
        if metakey in maskkey:
            with open(maskval, 'w+') as metafile:
                metafile.write(metaval)

conda_metadata = conda_build.metadata.MetaData(env.cbchome)

if metadata.local_metadata['cbc_cgi']['local_server']:
    fileserver_thread = threading.Thread(target=cbc.server.FileServer,
                          args=([metadata.local_metadata['cbc_cgi']['local_port'],
                                metadata.local_metadata['cbc_cgi']['local_sources'],
                                True]),
                          daemon=True)
    fileserver_thread.start()

#conda_build.build.rm_pkgs_cache(conda_metadata.dist())
conda_build.build.build(conda_metadata, get_src=True, verbose=True)