# shellcheck shell=dash
___x_cmd_log init cosmo

xrc:mod:lib       cosmo     util __download add run binlist install __assimilate ls __author ape use infuse

if ___x_cmd_is_suitable_advise_env; then
    xrc:mod:lib cosmo     advise
fi

___x_cmd_cosmo___main(){
    [ "$#" -gt 0 ] ||   set -- --ls
    local op="$1"; shift
    case "$op" in
        -h|--help)      ___x_cmd help -m cosmo;        return ;;

        --add)          ___x_cmd_cosmo___add        "$@" ;;
        -i|--install)   ___x_cmd_cosmo___install    "$@" ;;

        --infuse)       ___x_cmd_cosmo___infuse     "$@" ;;

        --use|use)      ___x_cmd_cosmo___use        "$@" ;;
        --unuse|unuse)  ___x_cmd_cosmo___unuse      "$@" ;;

        --run)          ___x_cmd_cosmo___run        "$@" ;;
        --ape)          ___x_cmd_cosmo___ape        "$@" ;;
        --assimilate)   ___x_cmd_cosmo___assimilate "$@" ;;
        # --arun)     # assimilate run

        -l|--ls)        ___x_cmd_cosmo___ls         "$@" ;;
        --ll)           ___x_cmd_cosmo___ll         "$@" ;;
        -w|--which)     ___x_cmd_cosmo___which      "$@" ;;

        -a|--author)    ___x_cmd_cosmo___author     "$@" ;;

        *)
            if ___x_cmd_cosmo___hasbin "$op"; then
                ___x_cmd_cosmo___run "$op" "$@"
            else
                cosmo:error "cosmo does not currently support $op"
            fi
        ;;
    esac
}

___x_cmd_cosmo___init(){
    ___X_CMD_COSMO_VERSION="v3.9.4"
    ___X_CMD_COSMO_METADATA_PATH="$___X_CMD_PKG_ROOT_PATH/metadata/$___X_CMD_PKG_VERSION/cosmo"

    ___X_CMD_COSMO_ROOT_PATH="$___X_CMD_ROOT_DATA/cosmo"
    ___X_CMD_COSMO_DOWNLOAD_PATH="$___X_CMD_COSMO_ROOT_PATH/download"
    ___X_CMD_COSMO_BIN_PATH="$___X_CMD_COSMO_ROOT_PATH/bin"
    ___X_CMD_COSMO_ASSIMILATE_PATH="$___X_CMD_COSMO_ROOT_PATH/assimilate"
    ___X_CMD_COSMO_BINLIST=
    [ -d "$___X_CMD_COSMO_ASSIMILATE_PATH" ]    || ___x_cmd_cmds_mkdir -p "$___X_CMD_COSMO_ASSIMILATE_PATH"
    [ -d "$___X_CMD_COSMO_ROOT_PATH" ]          || ___x_cmd_cmds_mkdir -p "$___X_CMD_COSMO_ROOT_PATH"
    [ -d "$___X_CMD_COSMO_DOWNLOAD_PATH" ]      || ___x_cmd_cmds_mkdir -p "$___X_CMD_COSMO_DOWNLOAD_PATH"
    [ -d "$___X_CMD_COSMO_BIN_PATH" ]           || ___x_cmd_cmds_mkdir -p "$___X_CMD_COSMO_BIN_PATH"
}

___x_cmd_cosmo___init
