#!/bin/sh -e

os="$( "$__explorer/os" )"

case "$os" in
    freebsd)
        sysctl -n kern.disks
    ;;
    openbsd)
        sysctl -n hw.disknames | grep -Eo '[sw]d[0-9]+' | xargs
    ;;
    netbsd)
        sysctl -n hw.disknames | grep -Eo '[lsw]d[0-9]' | xargs
    ;;
    *)
        # hopefully everything else is linux
        if command -v lsblk > /dev/null
        then
            # exclude ram disks, floppies and cdroms 
            # https://www.kernel.org/doc/Documentation/admin-guide/devices.txt
            lsblk -e 1,2,11 -dno name | xargs
        else
            # fallback
            find /dev \
                -type b \
                -regex '/dev/\(hd\|sd\|vd\)[a-z]+' \
                -printf '%f '
        fi
    ;;
esac
