slitaz-modular annotate initramfs/usr/bin/activate @ rev 54

Fixed off option when tazpanel is release. Made sure MAIN_WWW_DIR/slitaz links to /var/www/slitaz. Add slitaz-modular soft link to COOKING folder for new slitaz-modular script.
author Christopher Rogers <slaxemulator@gmail.com>
date Sun Apr 10 12:44:31 2011 +0000 (2011-04-10)
parents
children
rev   line source
slaxemulator@43 1 #!/bin/bash
slaxemulator@43 2 # Activate a module, while running LiveCD.
slaxemulator@43 3 # Include it into live directory structure on the fly
slaxemulator@43 4 #
slaxemulator@43 5 # Author: Tomas M. <http://www.linux-live.org>
slaxemulator@43 6
slaxemulator@43 7
slaxemulator@43 8
slaxemulator@43 9 MODULE=$(readlink -f "$1")
slaxemulator@43 10
slaxemulator@43 11 if [ "$MODULE" = "" -o ! -e "$MODULE" -o -d "$MODULE" ]; then
slaxemulator@43 12 echo
slaxemulator@43 13 echo "Activate a module on the fly while running Linux Live"
slaxemulator@43 14 echo "Usage: $0 module.lzm"
slaxemulator@43 15 exit 1
slaxemulator@43 16 fi
slaxemulator@43 17
slaxemulator@43 18 if [ "$(echo $MODULE | fgrep -i .lzm || fgrep -i .xz)" = "" ]; then
slaxemulator@43 19 echo
slaxemulator@43 20 echo "$(basename $MODULE): Module must end with .lzm"
slaxemulator@43 21 exit 2
slaxemulator@43 22 fi
slaxemulator@43 23
slaxemulator@43 24 PATH=.:$(dirname $0):/usr/lib:$PATH
slaxemulator@43 25 . liblinuxlive || exit 3
slaxemulator@43 26
slaxemulator@43 27 allow_only_root
slaxemulator@43 28 IMAGES=/mnt/live/memory/images
slaxemulator@43 29 MODULES=/mnt/live/memory/modules
slaxemulator@43 30
slaxemulator@43 31 # are we even using union?
slaxemulator@43 32 if [ "$(grep '^aufs / ' /proc/mounts)" = "" ]; then
slaxemulator@43 33 echo "not in the live mode, can't continue. Try lzm2dir $MODULE /"
slaxemulator@43 34 exit 4
slaxemulator@43 35 fi
slaxemulator@43 36
slaxemulator@43 37 mkdir -p "$MODULES"
slaxemulator@43 38
slaxemulator@43 39 # Test whether the module file is stored in union
slaxemulator@43 40 # if yes, then we must move it somewhere else (to RAM) else it can't be added
slaxemulator@43 41 if [ -e "/mnt/live/memory/changes/$(readlink -f "$MODULE")" ]; then
slaxemulator@43 42 echo "module file is stored inside the union, moving to $MODULES first..."
slaxemulator@43 43 TARGET="$MODULES/$(basename "$MODULE")"
slaxemulator@43 44 mv "$MODULE" "$TARGET"
slaxemulator@43 45 if [ $? -ne 0 ]; then
slaxemulator@43 46 echo "error copying module to memory, not enough free RAM? try df" >&2
slaxemulator@43 47 rm "$TARGET"
slaxemulator@43 48 exit 6
slaxemulator@43 49 fi
slaxemulator@43 50 MODULE="$TARGET"
slaxemulator@43 51 fi
slaxemulator@43 52
slaxemulator@43 53 MOD=$(union_insert_module / "$MODULE" $IMAGES)
slaxemulator@43 54 if [ $? -ne 0 ]; then echo "error inserting module to live filesystem" >&2; exit 3; fi
slaxemulator@43 55
slaxemulator@43 56 # All executables (but symlinks) in /etc/rc.d/init.d/ from this module will be started
slaxemulator@43 57 # with two arguments: "start" "activate".
slaxemulator@43 58 # This is done only by the 'activate' script, not in the case when the module is loaded
slaxemulator@43 59 # during OS startup (in that case, your distro is responsible for execution)
slaxemulator@43 60 #
slaxemulator@43 61 # For compatibility, /etc/init.d is also examined, but it's not recommended for you to put your startup scripts
slaxemulator@43 62 # there in your module
slaxemulator@43 63
slaxemulator@43 64 MOD="$IMAGES/$(basename $MOD)"
slaxemulator@43 65
slaxemulator@43 66 find_n_run_scripts $MOD start activate
slaxemulator@43 67
slaxemulator@43 68 # update ld cache if new ld.so.conf/cache exists in the module
slaxemulator@43 69 if [ -e "$MOD/etc/ld.so.conf" -o -e "$MOD/etc/ld.so.cache" ]; then
slaxemulator@43 70 echo "Module contains ld.so.conf or ld.so.cache, updating libs cache..."
slaxemulator@43 71 /sbin/ldconfig
slaxemulator@43 72 fi