# shellcheck shell=dash

___x_cmd_git_subtree___main(){
    local op="$1";  shift

    local prefix=
    case "$1" in
        --prefix=*)     prefix="${1#--prefix=}";    shift ;;
        *)              ;;      # TODO: complete the prefix by asking
    esac

    [ ! $# -eq 2 ] || {
        case "$1" in
            :gh/*)          set -- "git@github.com:${1#:gh/}" "$2"      ;;
            :gcode/*)       set -- "git@gitcode.net:${1#:gcode/}" "$2"     ;;
            :gt/*)          set -- "git@gitee.com:${1#:gt/}" "$2"       ;;
        esac
    }

    [ -n "$prefix" ] || {
        # TODO: add form asking
        prefix="$(x git subtree hls | x fzf)" || {
            git:error "Abort. Please provide prefix"
            return 1
        }
    }

    ___x_cmd_git_subtree_origin "$op" "$prefix" "$@"
}
