#!/bin/sh
file="$1"
w="$2"
h="$3"

case "$(file -Lb --mime-type "$file")" in
    text/*|application/json|application/x-empty|inode/x-empty)
        bat --theme="ansi" --color=always --style=numbers --line-range=:500 --terminal-width="$w" "$file"
        ;;
    image/*)
        echo "Image: $file"
        ;;
    application/pdf)
        pdftotext -l 10 -nopgbrk -q "$file" - | fold -s -w "$w"
        ;;
    application/zip|application/x-tar|application/x-rar|application/x-7z-compressed|application/gzip|application/x-bzip2|application/x-xz)
        echo "Archive: $file"
        echo
        case "$file" in
            *.zip) unzip -l "$file" ;;
            *.tar|*.tar.*|*.tgz) tar tf "$file" ;;
            *.rar) unrar l "$file" ;;
            *.7z) 7z l "$file" ;;
            *) echo "Archive listing not supported" ;;
        esac
        ;;
    *)
        file -Lb "$file"
        ;;
esac
