#!/bin/sh

set -e

. /usr/share/initramfs-tools/hook-functions

manual_add_modules_safe(){
        manual_add_modules $1 || true
}

copy_exec_safe(){
        copy_exec $1 || true
}

# klibc dependencies
for FILE in /lib/libacl* /lib/libblkid* /lib/libuuid* /lib/libdevmapper* /lib/libattr*
do
if [ ! -e "${DESTDIR}/${FILE}" ] && ls "${FILE}" > /dev/null 2>&1
then
cp -a "${FILE}" "${DESTDIR}/${FILE}"
fi
done

for FILE in /lib/udev/*_id
do
copy_exec_safe "${FILE}"
done

# Filesystem: btrfs
manual_add_modules_safe btrfs

copy_exec_safe /sbin/mount.cifs
manual_add_modules_safe cifs

# Filesystem: ext3/ext4
manual_add_modules_safe ext3
manual_add_modules_safe ext4

# Filesystem: hfs/hfsplus
manual_add_modules_safe hfs
manual_add_modules_safe hfsplus

# Filesystem: jffs2
manual_add_modules_safe jffs2

copy_exec_safe /usr/bin/rsync /bin

# Filesystem: squashfs
copy_exec_safe /sbin/losetup
manual_add_modules_safe loop
manual_add_modules_safe squashfs
manual_add_modules_safe sqlzma
manual_add_modules_safe unlzma

# Filesystem: aufs/overlay
manual_add_modules_safe aufs
manual_add_modules_safe overlay

# Filesystem: vfat
manual_add_modules_safe nls_cp437
manual_add_modules_safe nls_iso8859-1
manual_add_modules_safe nls_utf8
manual_add_modules_safe nls_ascii
manual_add_modules_safe vfat
manual_add_modules_safe exfat
manual_add_modules_safe ntfs


manual_add_modules_safe dm-verity
# The BusyBox mount does not support dm-verity so we use the util-linux version.
copy_exec_safe /bin/mount /bin

manual_add_modules_safe of_pmem
manual_add_modules_safe nd_pmem
manual_add_modules_safe nfit

manual_add_modules_safe ide-cd
manual_add_modules_safe ide-generic
manual_add_modules_safe ohci1394
manual_add_modules_safe sbp2
manual_add_modules_safe sr_mod

manual_add_modules_safe sd_mod
# Hardware: network
auto_add_modules net
auto_add_modules scsi

copy_exec_safe /bin/udevadm

manual_add_modules_safe fuse

copy_exec_safe /usr/bin/lspci
copy_exec_safe /usr/sbin/iscsistart /bin
#manual_add_modules_safe ib_iser
manual_add_modules_safe iscsi_tcp
manual_add_modules_safe crc32c

for module in amdgpu nouveau radeon drm simple_drm simplefb; do
        manual_add_modules_safe "${module}"
done

for iproute2 in `dpkg -L iproute2|grep -v man|grep -v doc|grep -v usr/share|grep -v include`; do
copy_exec_safe "${iproute2}"
done

