示例#1
0
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))
示例#2
0
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()