# shellcheck    shell=dash

___x_cmd_htag___dn(){
    x mkdirp "$___X_CMD_HTAG_METADATA"
    case "$1" in
        "") ___x_cmd_htag___server_print
            ;;

        --auto)
            ___x_cmd_htag___dn_auto
            ;;

        # user|prod|key|dev|test|alpha|beta)
        set)
            shift
            ___x_cmd_htag___dn_set "$1"
            ;;
        *)
            ___x_cmd_htag___dn_set "$1"
            ;;
    esac
}

___x_cmd_htag___dn_auto(){
    local x_;
    ! ___x_cmd_htag___dn_ || \
        x ui yesno "current dn is $x_, do you want to reset it?" || return 0

    local dn;

    # TODO: using nslookup to get dn

    dn="${HOSTNAME:-${HOST}}"
    case "$dn" in
        *.*)        ___x_cmd_htag___dn set "$dn" ;;
        *)
    esac
}

___x_cmd_htag___dn_(){
    x_=
    [ -f "$___X_CMD_HTAG_METADATA/dn" ] && read -r x_ <"$___X_CMD_HTAG_METADATA/dn"
}

___x_cmd_htag___dn_print(){
    local x_
    ___x_cmd_htag___dn_ || return
    printf "%s\n" "$x_"
}

___x_cmd_htag___dn_set(){
    htag:info "Seting host dn tag as $1"
    printf "%s\n" "$1" >"$___X_CMD_HTAG_METADATA/dn"
}
