
theme:widget:add hosttag

XTW_hosttag_sep="|"
XTW_hosttag_style_sep="white dim"

XTW_hosttag_style_host_docker="fg-white bg-magenta"
XTW_hosttag_style_host_normal="white dim"

XTW_hosttag_style_server_dev="cyan"
XTW_hosttag_style_server_test="yellow"
XTW_hosttag_style_server_prod="bold red"
XTW_hosttag_style_server_default="dim white"

XTW_hosttag_style_other="dim white"

___x_cmd_theme_widget_hosttag(){
    local x_=

    X_hosttag=""
    ___x_cmd_theme_comp_hostid || return

    theme:style_ "%${XTW_hosttag_style_sep}%" "$XTW_hosttag_sep";    x_tag_sep_="$x_"

    if [ -n "$x_docker" ]; then     theme:style_ "%${XTW_hosttag_style_host_docker}%"  "${x_hostid}"
    else                            theme:style_ "%${XTW_hosttag_style_host_normal}%"  "${x_hostid}"
    fi
    X_hosttag="$x_"

    if [ -n "$x_htag_server" ]; then
        case "$x_htag_server" in
            dev)    theme:style_ "%${XTW_hosttag_style_server_dev}%"       dev  ;;
            test)   theme:style_ "%${XTW_hosttag_style_server_test}%"      test ;;
            prod)   theme:style_ "%${XTW_hosttag_style_server_prod}%"      PROD ;;
            *)      theme:style_ "%${XTW_hosttag_style_server_default}%"   "$x_htag_server" ;;
        esac
        X_hosttag="${x_}${x_tag_sep_}${X_hosttag}"
    fi

    x_=; ___x_cmd line join_ --noblank '|' <<A
$x_htag_other
A

    [ -z "$x_" ] || {
        theme:style_ "%${XTW_hosttag_style_other}%" "${x_}"
        X_hosttag="${x_}${x_tag_sep_}${X_hosttag}"
    }
}

## this is common
___x_cmd_theme_comp_hostid(){
    theme:comp  host

    x_hostid="${x_htag_dn:-${x_htag_ip}}"
    if [ -z "$x_hostid" ]; then
        if [ -n "$x_docker" ]; then     x_hostid="$x_host_6"
        else                            x_hostid="$x_host"
        fi
    fi
}
