#!/bin/bash

build() {
    add_checked_modules -f 'dm-' 'drivers/md/*'

    # check if a custom mdadm.conf exists
    if grep -q ^ARRAY /etc/mdadm.conf; then
        echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays."
        add_file "/etc/mdadm.conf"
    fi
    add_binary "/usr/bin/mdassemble"
    add_file "/usr/lib/udev/rules.d/63-md-raid-arrays.rules"

    add_runscript
}

help() {
  cat <<HELPEOF
This hook loads the necessary modules for any raid root device,
and assembles the raid device when run.

If arrays are defined in /etc/mdadm.conf, the file will be used instead
of command line assembling.

Command Line Setup:
- for raid arrays with persistent superblocks:
  md=<md device no.>,dev0,dev1,...,devn
  md=<md device no.>,uuid
- for partitionable raid arrays with persistent superblocks:
  md=d<md device no.>,dev0,dev1,...,devn
  md=d<md device no.>,uuid

Parameters:
- <md device no.> = the number of the md device: 
  0 means md0, 1 means md1, ...
- <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
                 or 0900878d:f95f6057:c39a36e9:55efa60a
Examples:
- md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
  This will setup 2 md partitionable arrays.
- md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
  This will setup 2 md arrays with persistent superblocks.
HELPEOF
}

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