diff --git a/fabfile.py b/fabfile.py index a489325..dd02aaa 100644 --- a/fabfile.py +++ b/fabfile.py @@ -14,7 +14,10 @@ @task def release_text(c, workflow_name): - makefile = read_makefile('.') + base_dir = '.' + tools = read_all_tools('..') + dependencies = output_tool_dependencies(workflow_name, base_dir) + makefile = read_makefile(base_dir) readme = 'README.md' previous_readme_lines = [] if os.path.isfile(readme): @@ -34,13 +37,37 @@ def release_text(c, workflow_name): update_text = "Last updated: {}.".format(makefile['LAST_UPDATED']) + dependency_text = [] + seen = {} + + for (dependency, dependency_version) in dependencies: + + status = "N/V" + if dependency not in seen or (dependency in seen and seen[dependency] != dependency_version): + if dependency in tools: + + local_version, workflow = tools[dependency] + + if dependency_version == local_version: + status = "({})".format(dependency_version) + else: + status = "({}, latest is {})".format(dependency_version, local_version) + + dependency_text.append("* {} {}".format(dependency, status)) + else: + dependency_text.append("* {} (untracked)".format(dependency)) + + seen[dependency] = dependency_version + with open(readme, 'w') as w: w.write('## {}\n\n'.format(name)) w.write('#### Version: {}\n\n'.format(version)) if description: w.write('#### Description: \n{}\n\n'.format(description[1:-1])) + if len(dependency_text) > 0: + w.write('#### Dependencies: \n{}\n\n'.format("\n".join(dependency_text))) w.write('_{}_\n\n'.format(update_text)) - w.write('') + w.write('\n\n') for previous_readme_line in previous_readme_lines: w.write(previous_readme_line)