# shellcheck shell=dash

xrc:mod:lib     codi        stat

___x_cmd_codi___main(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_codi_stat .
        return
    }

    local op="$1"; shift
    case "$op" in
        stat)
            ___x_cmd_codi_stat "$@"
            ;;
        -h|--help)
            x help -m codi
            return 1
            ;;

        *)
            ___x_cmd_codi_stat "$op" "$@"
    esac
}

___x_cmd_codi_filelang_(){
    local fp="${1:?Provide filepath}"
    x_="${___X_CMD_CODI_FILELANG_DEFAULT:-nil}"

    fp="${fp##*/}"

    case "$fp" in
        *.awk)      x_=awk      ;;
        *.c)        x_=c        ;;
        *.cpp)      x_=cpp      ;;
        *.go)       x_=go       ;;
        *.rust)     x_=rust     ;;
        *.zig)      x_=zig      ;;

        *.java)     x_=java     ;;
        *.jar)      x_=jar      ;;

        *.lua)      x_=lua      ;;

        *.js)       x_=js       ;;
        *.ts)       x_=ts       ;;

        *.py)       x_=python   ;;
        *.pl)       x_=perl     ;;
        *.rb)       x_=ruby     ;;
        *.jl)       x_=julia    ;;
        *.r|*.R)    x_=r        ;;

        *.yml|*.yaml)
                    x_=yml      ;;
        *.json)     x_=json     ;;
        *.jso)      x_=jso      ;;
        *.toml)     x_=toml     ;;
        *.xml)      x_=xml      ;;
        *.html)     x_=html     ;;

        *.md)       x_=markdown ;;

        *.graphml)  x_=graphml  ;;

        *.txt)      x_=text     ;;

        *.sh)       x_=sh       ;;
        *.bash)     x_=bash     ;;
        *.zsh)      x_=zsh      ;;
        *.fish)     x_=fish     ;;
        *.elv)      x_=elvish   ;;
        *.nu)       x_=nushell  ;;
        *.xsh)      x_=xonsh    ;;
        *.csh|*.tcsh)
                    x_=csh    ;;

        LICENSE)    x_=LICENSE  ;;

        Dockerfile|*.Dockerfile)
                    x_=DOCKER   ;;

        Makefile|makefile)
                    x_=make     ;;      # cmake?
        .git*)
                    x_=git      ;;      # cmake?
    esac
}
