# shellcheck shell=dash disable=SC2120
___x_cmd_pwsh_log(){
    local cmd="Get-EventLog -List"
    pwsh:arg:null
    if [ $# -eq 1 ]; then
        case "$1" in
            -l|--list|-c|--csv|-j|--json|--app) ;;
            -h|--help)
                ___x_cmd help -m pwsh log; return ;;
            *)  set -- -logname "$1" -newest 200  ;;
        esac
    fi

    local opt=; local x_output_mode=; local x_output=
    while [ $# -gt 0 ]; do
        pwsh:output:mode

        cmd="Get-Eventlog"
        case "$1" in
            --logname)          opt="${opt} -LogName $2"
                                shift 2
                                [ "$#" -gt 0 ] || set -- -newest 200
                                ;;
            --computername)      opt="${opt} -ComputerName $2";    shift 2;;
            --newest)            opt="${opt} -Newest $2";          shift 2;;
            --after)             opt="${opt} -After $2";           shift 2;;
            --before)            opt="${opt} -Before $2";          shift 2;;
            --username)          opt="${opt} -UserName $2";        shift 2;;
            --instanceid)        opt="${opt} -InstanceId $2";      shift 2;;
            --index)             opt="${opt} -Index $2";           shift 2;;
            --entrytype)         opt="${opt} -EntryType $2";       shift 2;;
            --source)            opt="${opt} -Source $2";          shift 2;;
            --message)           opt="${opt} -Message $2";         shift 2;;
            --asbaseobject)      opt="${opt} -AsBaseObject $2";    shift 2;;
            --commonparameters)  opt="${opt} CommonParameters $2"; shift 2;;
            *)                   N=pwsh M="Unsupported subcmd => $1" log:ret:64  ;;
        esac
    done

    pwsh:info -c "${cmd}${opt}" ${x_output_mode:+"--mode"} ${x_output_mode:+"$x_output_mode"} log

    [ "$x_output_mode" != app ] || {
        ___x_cmd_pwsh___exec "$x_output_mode" "${cmd}${opt}" "$x_output" | ___x_cmd csv --app
        return
    }
    ___x_cmd_pwsh___exec "$x_output_mode" "${cmd}${opt}" "$x_output"
}
