# shellcheck shell=dash

___x_cmd_mac_smc(){
    local fmt=auto

    case "$1" in
        --json)     fmt=json    ;;
        --yml)      fmt=yml     ;;
        --csv)      fmt=csv     ;;
        --app)      fmt=app     ;;
    esac

    ___x_cmd_mac_smc___$fmt
}

___x_cmd_mac_smc___auto(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual; then
        ___x_cmd_mac_smc___app
    else
        ___x_cmd_mac_smc___csv
    fi
}

___x_cmd_mac_smc___yml(){
    ___x_cmd_mac_smc___json | ___x_cmd j2y
}

___x_cmd_mac_smc___json(){
    ___x_cmd ismc --output json
}

___x_cmd_mac_smc___app(){
    ___x_cmd_mac_smc___csv | ___x_cmd csv --app --clear
}

___x_cmd_mac_smc___csv(){
    ___x_cmd ismc --output influx | command awk '
{
    gsub(",", " ", $0)
    desc = $1
    type = $2
    unit = $3

    if (NF == 5) {
        key = ""
        val = $4
    } else {
        key = $4
        val = $5
    }

    gsub("key=",        "",     key)
    gsub("value=",      "",     val)
    gsub("sensortype=", "",     type)

    ts = $NF

    printf("%s,%s,%s,%s,%s\n", type, desc, key, val, ts)
}
' | {
    printf "%s,%s,%s,%s,%s\n" "type" "desc" "key" "value" "ts"
    command sort -t ',' -k 2,1
}

}

