run_hook () { if grep -qw arch-addons /proc/cmdline; then ARCH_ADDON="optical storage floppy disk" ### exclude kernel ntfs it seems broken! echo "Disabling kernel NTFS module for mounting, due to known issues!" mv /lib/modules/$(uname -r)/kernel/fs/ntfs/ntfs.ko /lib/modules/$(uname -r)/kernel/fs/ntfs/ntfs.ko.old echo " Waiting 10 seconds for usb/fw devices to come ready ..." sleep 10 for i in $ARCH_ADDON; do echo "Checking $i devices for addons ..." for k in $(find /dev -maxdepth 1 -group "$i"); do if mount $k /addons > /dev/null 2>&1; then echo "Looking for new config files on $k, checking /config directory ..." if [ -d "/addons/config" ]; then echo "Copying new config files to /etc install environment ..." cp -r /addons/config/* /etc/ echo "Finished." RETRIGGER_UDEV="1" else echo "No files found to copy in /config directory on media $i." fi echo "Looking for new packages to install on $k, checking /packages directory ..." if [ -d "/addons/packages" ]; then mkdir /tmp/packages/ echo "Copying new packages to /tmp/packages/ install environment ..." cp /addons/packages/*.pkg.tar.gz /tmp/packages/ echo "Installing new packages to install environment ..." pacman -A /tmp/packages/* || echo "Dependency resolution failed!" RETRIGGER_UDEV="1" else echo "No new files found to copy and install in /packages directory on media $k." fi umount /addons sleep 2 fi done done mv /lib/modules/$(uname -r)/kernel/fs/ntfs/ntfs.ko.old /lib/modules/$(uname -r)/kernel/fs/ntfs/ntfs.ko if [ "$RETRIGGER_UDEV" = "1" ]; then echo "Retrigger udev uevents ..." /etc/start_udev uevents fi else echo "ARCH_ADDONS USAGE:" echo "------------------" echo "By default loading is disabled!" echo "In order to load external addon packages or configs" echo "into install environment, please append arch-addons to boot prompt." echo "Place external addon packages in /packages directory." echo "Place external configs in /config directory." echo "------------------" echo "Message is displayed 10 seconds ..." echo "" sleep 10 fi }