#!/bin/sh

set -e

module=enyx-hfp/2.12.0
kernel=''

while getopts 'hk:' opt; do
    case "$opt" in
        h)
            printf "%s: [-hk]\n" "$0"
            printf "See man page\n"
            exit 0
            ;;
        k)
            kernel="-k $OPTARG"
            ;;
    esac
done


# Clean any previously installed version.
# This regexp supports dkms version 2 and 3
version_re='s!enyx-hfp(, |/)([0-9.]+),.+$!\2!p'
all_versions=$(dkms status enyx-hfp 2>/dev/null | sed -nr "$version_re" | uniq)
for current_version in $all_versions; do
    dkms remove -q "enyx-hfp/$current_version" --all || :
done

dkms add -q $module
dkms install -q --force $module "$kernel" || :

# On some version of udev, `udevadm trigger`, which triggers action `change`,
# works.
# One some other, we must do the action `add` instead.
udevadm trigger >/dev/null 2>&1 || :
udevadm trigger --action=add \
    --subsystem-match=pci \
    --attr-match=vendor=0x1d8f >/dev/null 2>&1 || :

exit 0
