#!/bin/bash build() { for dir in new_root proc sys dev run tmp usr/bin; do add_dir "/$dir" done add_symlink /sbin usr/bin add_symlink /bin usr/bin add_symlink /usr/sbin bin add_binary /lib/initcpio/busybox /bin/busybox for applet in $(/lib/initcpio/busybox --list); do add_symlink "/usr/bin/$applet" busybox done add_binary /sbin/modprobe add_binary /sbin/blkid add_binary /bin/mount add_binary /sbin/switch_root add_binary /bin/findmnt add_symlink "/etc/mtab" "/proc/self/mounts" # Add an empty fstab to avoid mount warning when -o remount is used >"$BUILDROOT/etc/fstab" add_file "/lib/initcpio/init_functions" "/init_functions" add_file "/lib/initcpio/init" "/init" add_file "/lib/modprobe.d/usb-load-ehci-first.conf" # write a new config file. re-source the config as we can't guarantee the # environment hasn't been modified, but subshell it so it doesn't disturb # anyone else. ( . "$CONFIG" # sanitize of any extra whitespace read -r -a modules <<< "$MODULES" read -r -a hooks <<< "$HOOKS" { (( ${#modules[*]} )) && printf 'MODULES="%s"\n' "${modules[*]%\?}" (( ${#hooks[*]} )) && printf 'HOOKS="%s"\n' "${hooks[*]}" } >"$BUILDROOT/config" ) } help() { cat <