#!/bin/sh

set -e

module=nano-xilinx-drv/rhel-1.0.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!nano-xilinx-drv(, |/)([^,]+),.+$!\2!p'
all_versions=$(dkms status nano-xilinx-drv 2>/dev/null | sed -nr "$version_re" | uniq)
echo "DEBUG: Found versions: '$all_versions'"
for current_version in $all_versions; do
    dkms remove "nano-xilinx-drv/$current_version" --all || :
done

dkms add $module
dkms install --force $module 

# 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
