diff --git a/buildout.cfg.template b/buildout.cfg.template new file mode 100644 index 0000000000000000000000000000000000000000..5925fda712bd453b15d87d56998b4e1b30a2bf1d --- /dev/null +++ b/buildout.cfg.template @@ -0,0 +1,18 @@ +[buildout] +parts = scripts +extensions = bob.buildout + mr.developer +auto-checkout = * +debug = true +newest = false +verbose = true +eggs = {eggs} + +develop = {develop} + +[scripts] +recipe = bob.buildout:scripts +dependent-scripts = true + +[sources] +{sources} diff --git a/generate_buildout_config b/generate_buildout_config new file mode 100755 index 0000000000000000000000000000000000000000..3a836703f36ce6b5e97f14a289a579d59cec2a9c --- /dev/null +++ b/generate_buildout_config @@ -0,0 +1,55 @@ +#!/usr/bin/env python +"""Generates a buildout configuration file based on the list of the packages + +Usage: + %(prog)s <package_list>... + %(prog)s --help + +Arguments: + <package_list> The files containing the package list. Each line should + contain only the name of one package. Empty lines and + comments starting with # are allowed. + +Options: + -h --help Show this help message and exit +""" + + +def format_list(package_list, prepend, left_fill): + text = prepend + package_list[0] + '\n' + package_list = package_list[1:] + for pkg in package_list: + text += ' ' * left_fill + prepend + pkg + '\n' + return text + + +def main(argv=None): + from docopt import docopt + import sys + import os + docs = __doc__ % {'prog': os.path.basename(sys.argv[0])} + args = docopt(docs, argv=argv) + package_list_files = args['<package_list>'] + package_list = [] + for path in package_list_files: + for line in open(path): + line = line.partition('#')[0].strip() + if not line: + continue + package_list.append(line) + print(package_list) + # read the buildout config template + with open("buildout.cfg.template") as f: + template = f.read() + # eggs + eggs = format_list(package_list, '', 7) + develop = format_list(package_list, 'src/', 10) + source_list = ['{0} = git git@gitlab.idiap.ch:bob/{0}'.format(p) + for p in package_list] + sources = format_list(source_list, '', 0) + with open('buildout.cfg', 'wt') as f: + f.write(template.format(eggs=eggs, develop=develop, sources=sources)) + + +if __name__ == '__main__': + main()