# Author:       Li Junhao           l@x-cmd.com
# shellcheck    shell=sh            disable=SC3043,SC2164     # xrc

# license:      GPLv3

___x_cmd_lenv(){
    case "$1" in
        type)       ___x_cmd_lenv_type  ;;
        type_)      ___x_cmd_lenv_type_ ;;
        "")         ___x_cmd_lenv_type  ;;
        *)          x help -m lenv; return ;;
    esac

}

___x_cmd_lenv_type(){
    ___x_cmd_lenv_type_
    printf "%s\n" "$___X_CMD_LENV_TYPE_"
}

# 58.253.50.66
# declare -x SSH_CLIENT="58.253.50.66 11647 22"
# declare -x SSH_CONNECTION="58.253.50.66 11647 172.27.35.101 22"
# declare -x SSH_TTY="/dev/pts/0"
___x_cmd_lenv_type_(){
    [ -z "$___X_CMD_LENV_TYPE_" ] || return 0
    if [ -n "$SSH_CLIENT" ] && [ -n "$SSH_CONNECTION" ] && [ -n "$SSH_TTY" ]; then
        ___X_CMD_LENV_TYPE_="ssh"
    elif ___x_cmd_lenv_type___is_container; then
        ___X_CMD_LENV_TYPE_="container"
    else
        ___X_CMD_LENV_TYPE_="host"
    fi
}

___x_cmd_lenv_type___is_container(){
    [ ! -f '/.dockerenv' ]      ||  return 0
    [ ! -f '/.dockerinit' ]     ||  return 0
    [ -z "$container" ]         ||  return 0
    local s
    s="$(cat /proc/1/sched 2>/dev/null)"
    case "$s" in
        *docker*)                   return 0    ;;
        */lxc/*)                    return 0    ;;
    esac
    return 1
}


xrc setmain ___x_cmd_lenv
