post_install() {
    check_initramfs
}

post_remove() {
    check_initramfs 'remove'
}

post_upgrade() {
    check_initramfs
}

check_initramfs() {
    echo ">>> Updating module dependencies. Please wait ..."
    # `uname -r` returns the current running kernel version, we need the
    # currently installed kernel version.
    KERNEL_VERSION=$(pacman -Qi linux | sed -n 2p | cut -d: -f2)
    # For cases when the kernel version is 3.8, 3.9
    LINUX_VER=$(echo $KERNEL_VERSION | cut -d- -f1)
    if [ $(grep -o "\." <<<"$LINUX_VER" | wc -l) -eq 1 ]; then
        KERNEL_VERSION="${LINUX_VER}.0-${KERNEL_VERSION:(-1)}"
    fi
    depmod $(basename $(find /usr/lib/modules -type d -iname $KERNEL_VERSION\*))
    MK_CONF=$(grep -v '#' /etc/mkinitcpio.conf | grep zfs >/dev/null; echo $?);
    if [[ $MK_CONF == '0' ]]; then
        if [[ $1 == 'remove' ]]; then
            echo '>>> The ZFS packages have been removed, but "zfs" remains in the "hooks"'
            echo '>>> list in mkinitcpio.conf! You will need to remove "zfs" from the '
            echo '>>> "hooks" list and then regenerate the initial ramdisk.'
        else
            echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
            mkinitcpio -p linux
        fi
    fi
}
