def run(config, argv): args = docopt(__doc__, argv=argv) active_env = config.environment env = args["<environment>"] if not env: local_path = os.path.join(Filesystem.local_path()) dirs = (x for x in next(os.walk(local_path))[1] if x != "current") for d in dirs: if active_env == d: sys.stdout.write("* {0}\n".format(d)) else: sys.stdout.write(" {0}\n".format(d)) return env_path = Filesystem.local_env_path(env) if env == active_env: sys.stdout.write("Already on '{0}'\n".format(env)) elif os.path.isdir(env_path): config.activate_environment(env) sys.stdout.write("Switched to environment '{0}'\n".format(env)) else: sys.stdout.write("Environment '{0}' does not exist\n".format(env))
def init_cloudseed_project(config, args): write_file = Filesystem.write_file project_name = args['<project>'] user_dir = Filesystem.user_path() local_dir = Filesystem.local_path() project_dir = Filesystem.project_path(project_name) local_config_path = os.path.join(local_dir, 'config') local_providers_path = os.path.join(local_dir, 'providers') local_data = { 'project': project_name, } if not os.path.isdir(user_dir): log.debug('Creating directory %s', user_dir) os.mkdir(user_dir) # make empty global level config global_config = os.path.join(user_dir, 'config') log.debug('Creating empty config %s', global_config) open(global_config, 'w').close() if not os.path.isdir(project_dir): log.debug('Creating directory %s', project_dir) os.mkdir(project_dir) # make empty project level config project_config = os.path.join(project_dir, 'config') master_config = os.path.join(project_dir, 'master') profile_config = os.path.join(project_dir, 'profile') providers_config = os.path.join(project_dir, 'providers') states_dir = os.path.join(project_dir, 'states') log.debug('Creating empty config %s', project_config) open(project_config, 'w').close() log.debug('Creating empty providers %s', project_config) open(providers_config, 'w').close() log.debug('Creating empty salt master config %s', master_config) open(master_config, 'w').close() log.debug('Creating empty profile %s', profile_config) open(profile_config, 'w').close() if not os.path.isdir(states_dir): log.debug('Creating directory %s', states_dir) os.mkdir(states_dir) if not os.path.isdir(local_dir): log.debug('Creating directory %s', local_dir) os.mkdir(local_dir) if not os.path.isfile(local_config_path): log.debug('Creating empty local config %s', local_config_path) write_file(local_config_path, local_data) if not os.path.isfile(local_providers_path): log.debug('Creating empty local providers %s', local_providers_path) open(local_providers_path, 'w').close()