Source code for mould.write

import io
import os

import click


[docs]def write_directory(directory_entries, target_directory): """ :param directory_entries: DirectoryEntry instances :param target_directory: The directory to write the mould to :return: """ if not os.path.exists(target_directory): os.mkdir(target_directory) click.secho( 'Creating {} directory'.format(target_directory), fg='green' ) else: # TODO: handle existing git target directory click.secho( '{} already exists, overwriting contents'.format(target_directory), fg='red' ) for directory_entry in directory_entries: dir_to_create = os.path.join(target_directory, directory_entry['path']) click.secho( 'creating {}'.format(dir_to_create), fg='blue' ) if not os.path.exists(dir_to_create): os.mkdir(dir_to_create) for file_entry in directory_entry['files']: file_to_create = os.path.join(target_directory, file_entry['path']) click.secho( 'writing {}'.format(file_to_create), fg='blue' ) mode = 'w{}'.format('b' if file_entry['binary'] else 't') with io.open(file_to_create, mode=mode) as fh: fh.write(file_entry['content'])