# shellcheck shell=dash

___x_cmd_huggingface_model(){
    [ "$#" -gt 0 ] ||   set - -h

    local op="$1"; shift
    case "$op" in
        -h|--help)  x help -m huggingface model               ;;
        ls)         ___x_cmd_huggingface_model_ls       "$@"  ;;
        download)   ___x_cmd_huggingface_model_download "$@"  ;;

        # using download

        # convert to gguf

        # upload
    esac
}

# list downlaoded models here ...
___x_cmd_huggingface_model_ls(){
    local model_path="$___X_CMD_ROOT_DATA/model"
    [ -d "$model_path" ] || return 0
    x fsiter "$model_path"
}

___x_cmd_huggingface_model_which_(){
    local name=""
    if ___x_cmd_huggingface_model_isdownloaded; then
        x_=""
    else
        return 1
    fi
}

___x_cmd_huggingface_model_isdownloaded(){
    [ -f "" ]
}

___x_cmd_huggingface_model_download(){
    local model_name="${1##*/}"
    ___x_cmd_huggingface___publicdownload "$@" || {
        huggingface:warn  "Please check your url or model name"
        huggingface:error "Fail to download [model=$model_name]"
        return 1
    }

}
