#!/bin/bash

build() {
    map add_module \
        zavl \
        znvpair \
        zunicode \
        zcommon \
        zfs \
        spl

    map add_binary \
        fsck.zfs \
        mount.zfs \
        seq \
        zdb \
        zed \
        zfs \
        zhack \
        zinject \
        zpool \
        zstreamdump \
        /usr/lib/udev/vdev_id \
        /usr/lib/udev/zvol_id \
        findmnt

    map add_file \
        /usr/lib/udev/rules.d/60-zvol.rules \
        /usr/lib/udev/rules.d/69-vdev.rules \
        /usr/lib/udev/rules.d/90-zfs.rules \
        /usr/lib/libgcc_s.so.1

    map add_dir \
        /etc/zfs/zed.d

    add_runscript

    # allow mount(8) to "autodetect" ZFS
    echo 'zfs' >>"${BUILDROOT}/etc/filesystems"

    [[ -f /etc/hostid ]] && add_file "/etc/hostid"
    [[ -f /etc/zfs/zpool.cache ]] && cp "/etc/zfs/zpool.cache" "${BUILDROOT}/etc/zfs/zpool.cache.org"
    [[ -f /etc/modprobe.d/zfs.conf ]] && add_file "/etc/modprobe.d/zfs.conf"
}

help() {
    cat<<HELPEOF
This hook allows you to use ZFS as your root filesystem.

Command Line Setup:

    You can append the following arguments to your kernel parameters list. See
    https://wiki.archlinux.org/index.php/Kernel_parameters for more information.

    To use ZFS as your boot filesystem:

        zfs=bootfs or zfs=auto or root=zfs

    To use a pool or dataset:

        zfs=<pool/dataset>

    To force importing of a ZFS pool:

        zfs_force=1

        If set to 1, this will use "zpool import -f" when attempting to import
        pools.

    To change the seconds of time to wait for ZFS devices to show up at boot:

        zfs_wait=30

    To search for devices in a directory other than "/dev":

        zfs_import_dir=/dev/disk/by-uuid
            or
        zfs_import_dir=/dev/disk/by-partuuid
            or
        zfs_import_dir=/dev/disk/by-path
            etc.

    Following initcpio convention, the 'rw' option must be specified to load the
    pool as read/write. Pools are loaded as read only by default.

Examples:

    To use bootfs on your pool, use

        zfs=bootfs rw

    This will setup your root using tank/root zfs pool.

        zfs=tank/root rw

If you want to set properties for zfs-on-linux module, you should add them to
/etc/modprobe.d/zfs.conf and then rebuild initcpio.

HELPEOF
}

# vim: set ts=4 sw=4 ft=sh et:
