From 3c5ec8766e258cd385dc4c44a6b28b1a60dfaf52 Mon Sep 17 00:00:00 2001 From: dobli <dobler.alex@gmail.com> Date: Tue, 18 Dec 2018 18:52:33 +0100 Subject: [PATCH] Added command to initialize config folders --- building_manager.py | 50 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/building_manager.py b/building_manager.py index b69e55e..eb7b5cb 100755 --- a/building_manager.py +++ b/building_manager.py @@ -1,8 +1,26 @@ #!/usr/bin/env python import docker +import os +# Directories for config generation +CONFIG_DIRS = [ + 'influxdb', 'mosquitto', 'nodered', 'ssh', 'treafik', 'volumerize' +] -# Docker machine commands + +# Config file functions +def generate_config_folders(base_path): + """Generate folders for configuration files + + :base_path: Path to add folders to + """ + for d in CONFIG_DIRS: + new_dir = base_path + '/' + d + if not os.path.exists(new_dir): + os.makedirs(new_dir) + + +# Docker machine functions def get_machine_list(): """Get a list of docker machine names using the docker-machine system command @@ -103,6 +121,23 @@ def run_command_in_service(service, command, building=None): # CLI base commands and main +def init_config_dirs_command(args): + """Initialize config directories + + :args: parsed commandline arguments + """ + base_dir = args.base_dir + + if base_dir is None: + current_dir = os.getcwd() + base_dir = current_dir + '/custom_configs' + if not os.path.exists(base_dir): + os.makedirs(base_dir) + + print('Initialize configuration in {}'.format(base_dir)) + generate_config_folders(base_dir) + + def assign_building_command(args): """Assigns the role of a building to a node @@ -184,5 +219,18 @@ if __name__ == '__main__': 'service location is ambiguous') parser_exec.set_defaults(func=execute_command) + # Config commands + parser_config = subparsers.add_parser( + 'config', help='Manage configuration files') + parser_config_subs = parser_config.add_subparsers() + # - Config init + parser_config_init = parser_config_subs.add_parser( + 'init', help='Initialize config file directories') + parser_config_init.add_argument( + '--base_dir', + '-d', + help='Directory to creat config folders in, default is current dir') + parser_config_init.set_defaults(func=init_config_dirs_command) + args = parser.parse_args() args.func(args) -- GitLab