#!/usr/bin/env python import sys import yaml DOCKER_COMPOSE_TEMPLATE = 'docker-compose.yml.template' DOCKER_COMPOSE = 'docker-compose.yml' def get_compose(): with open(DOCKER_COMPOSE_TEMPLATE, 'r') as stream: try: return yaml.load(stream) except yaml.YAMLError as exc: print(exc) def get_dependencies(stream, submodules): result = submodules for service in stream['services']: if service not in submodules: continue if 'depends_on' in stream['services'][service]: result = result + stream['services'][service]['depends_on'] return result def process_compose(stream, submodules): result = stream services = {} for service in stream['services']: if service in submodules: services[service] = stream['services'][service] result['services'] = services return result def main(args): s = get_compose() computed_submodules = get_dependencies(s, ['haproxy']) r2 = process_compose(s, computed_submodules) print r2 if __name__ == '__main__': main(sys.argv[1:])