${PRINT_USAGE:-:} <<EOF
    new <name> [module1, module2]
                      create new puppet environment. Without specifying modules, only creates
                        the branch in control-repo and hiera-data. Creates this from an 
                        updated origin/HEAD branch
EOF

command_new() {
    eval "set -- $args"
    debug "$FUNCNAME $@"
    local name=$1
    shift
    local mods="$@"
    debug "$FUNCNAME $name , $mods"
    update_cache
    valid_env_name $name || error "Your environment name is invalid!"
    if env_exists $name ; then
        if [[ -z $force ]] ; then
            error "Env $name already exists, did you mean add? (or use --force)"
        fi
        echo "Env $name exists! Updating with provided modules" >&2
    fi
    for d_mod in $default_mods; do
        debug "  $FUNCNAME->add_mod $d_mod $name"
        add_mod $d_mod $name
    done
    debug "->gita context $name"
    gita context $name
    context=$name
    for mod in $mods ; do
        debug "   .->add_mod() $mod $name"
        add_mod $mod $name
    done
}
return 0
