def generate_meta(conf): m = MakefileCloth() m.section_break('branch/release meta', block='rel') m.var('manual-branch', conf.git.branches.manual, block='rel') m.var('current-branch', str(utils.get_branch()), block='rel') m.var('last-commit', str(utils.get_commit()), block='rel') m.var('current-if-not-manual', conf.git.branches.manual, block='rel') m.section_break('file system paths', block='paths') m.var('output', conf.build.paths.output, block='paths') m.var('public-output', conf.build.paths.public, block='paths') m.var('branch-output', conf.build.paths['branch-output'], block='paths') m.var('rst-include', conf.build.paths.includes, block='paths') m.var('branch-source', conf.build.paths['branch-source'], block='paths') m.var('public-branch-output', conf.build.paths['branch-staging'], block='paths') generated_makefiles = [] if 'static' in conf.build.system: m.section_break('static makefile includes') for mfile in conf.build.system.static: if mfile.startswith('/'): m.include(mfile[1:], ignore=False) else: m.include(os.path.join(os.path.abspath(os.path.join(__file__, '../../makefiles')), mfile)) m.newline() m.target('.PHONY', 'meta.yaml') m.target('meta.yaml', block='metaymal') m.job('fab process.output:meta.yaml process.meta', block='metaymal') m.msg('[meta]: regenerated "meta.yaml"', block='metaymal') m.section_break('generated makefiles') for target in conf.build.system.files: fn = os.path.sep.join([conf.build.paths.output, "makefile." + target]) cloth = os.path.join(conf.build.paths.buildsystem, "makecloth", target + '.py') generated_makefiles.append(fn) if target != 'meta': m.raw(['-include ' + conf.build.paths.output + '/makefile.' + target]) m.target(target=fn, dependency=cloth, block='makefiles') m.job(' '.join([conf.build.system.python, cloth, fn])) m.newline() m.newline() m.target('.PHONY', generated_makefiles) return m
def generate_json_output_meta(): m = MakefileCloth() m.section_break('json output coordination.') paths = render_paths('dict') if get_conf().git.remote.upstream.endswith('ecosystem'): public_json_output = os.path.join(paths['public'], 'json') else: public_json_output = os.path.join(paths['branch-staging'], 'json') build_json_output = os.path.join(paths['branch-output'], 'json') branch_json_list_file = os.path.join(paths['branch-output'], 'json-file-list') public_json_list_file = os.path.join(public_json_output, '.file_list') m.section_break('meta') m.target('json-output', ['json']) m.job('fab process.json_output') rsync_cmd = 'rsync --recursive --times --delete --exclude="*pickle" --exclude=".buildinfo" --exclude="*fjson" {0}/ {1}' m.job(rsync_cmd.format(build_json_output, public_json_output)) m.msg('[json]: migrated all .json files to staging.') m.msg('[json]: processed all json files.') m.section_break('list file') m.comment( 'the meta build system generates "{0}" when it generates this file'. format(branch_json_list_file)) fab_cmd = 'fab process.input:{0} process.output:{1} process.copy_if_needed:json' m.target('json-file-list', public_json_list_file) m.target(public_json_list_file, 'json-output') m.job(fab_cmd.format(branch_json_list_file, public_json_list_file)) m.msg('[json]: rebuilt inventory of json output.') m.target(build_json_output, 'json') m.target( '.PHONY', ['clean-json-output', 'clean-json', 'json-output', 'json-file-list']) m.target('clean-json-output', 'clean-json') m.job(' '.join([ 'rm -rf ', public_json_list_file, branch_json_list_file, public_json_output ])) m.msg('[json]: removed all processed json.') return m
def generate_json_output_meta(): m = MakefileCloth() m.section_break('json output coordination.') paths = render_paths('dict') if get_conf().git.remote.upstream.endswith('ecosystem'): public_json_output = os.path.join(paths['public'], 'json') else: public_json_output = os.path.join(paths['branch-staging'], 'json') build_json_output = os.path.join(paths['branch-output'], 'json') branch_json_list_file = os.path.join(paths['branch-output'], 'json-file-list') public_json_list_file = os.path.join(public_json_output, '.file_list') m.section_break('meta') m.target('json-output', ['json']) m.job('fab process.json_output') rsync_cmd = 'rsync --recursive --times --delete --exclude="*pickle" --exclude=".buildinfo" --exclude="*fjson" {0}/ {1}' m.job(rsync_cmd.format(build_json_output, public_json_output)) m.msg('[json]: migrated all .json files to staging.') m.msg('[json]: processed all json files.') m.section_break('list file') m.comment('the meta build system generates "{0}" when it generates this file'.format(branch_json_list_file)) fab_cmd = 'fab process.input:{0} process.output:{1} process.copy_if_needed:json' m.target('json-file-list', public_json_list_file) m.target(public_json_list_file, 'json-output') m.job(fab_cmd.format(branch_json_list_file , public_json_list_file)) m.msg('[json]: rebuilt inventory of json output.') m.target(build_json_output, 'json') m.target('.PHONY', ['clean-json-output', 'clean-json', 'json-output', 'json-file-list']) m.target('clean-json-output', 'clean-json') m.job(' '.join(['rm -rf ', public_json_list_file, branch_json_list_file, public_json_output])) m.msg('[json]: removed all processed json.') return m