home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / bin / register-module < prev    next >
Encoding:
Text File  |  2007-02-15  |  1.1 KB  |  64 lines

  1. #!/bin/sh
  2. QUEUE=/var/lib/register-module
  3. ADD_TO_INITRD=0
  4. TYPE=options
  5. PARAMS_ONLY=0
  6. ADD_PARAMS=1
  7.  
  8. if [ "$1" = "-i" ]; then
  9.     ADD_TO_INITRD=1
  10.     shift 1
  11. fi
  12. if [ "$1" = "-t" ]; then
  13.     TYPE=$2
  14.     shift 2
  15. fi
  16. if [ "$1" = "-p" ]; then
  17.     PARAMS_ONLY=1
  18.     shift 1
  19. fi
  20. if [ "$1" = "-a" ]; then
  21.     ADD_PARAMS=1
  22.     shift 1
  23. fi
  24.  
  25. MODULE=$1
  26. shift
  27. PARAMS="$@"
  28.  
  29. LOADFILE=$QUEUE/$MODULE.load
  30. INITRDFILE=$QUEUE/$MODULE.initrd
  31. PARAMFILE=$QUEUE/$MODULE.params
  32.  
  33. mkdir -p $QUEUE
  34. if [ "$PARAMS_ONLY" = 0 ]; then
  35.     if [ "$ADD_TO_INITRD" = 1 ]; then
  36.         touch $INITRDFILE
  37.     else
  38.         touch $LOADFILE
  39.     fi
  40. fi
  41.  
  42. if [ -n "$PARAMS" ]; then
  43.     if [ -e "$PARAMFILE" ]; then
  44.         if [ "$ADD_PARAMS" = 1 ]; then
  45.             PARAMS="$(grep "^$TYPE:" $PARAMFILE 2>/dev/null | sed "s/^$TYPE:\(.*\)$/\1/") $PARAMS"
  46.         fi
  47.         grep -v "^$TYPE:" $PARAMFILE > $PARAMFILE.new
  48.         mv $PARAMFILE.new $PARAMFILE
  49.     fi
  50.     echo "$TYPE:$PARAMS" >> $PARAMFILE
  51.  
  52.     if [ "$TYPE" = options ]; then
  53.         for file in /etc/modules.conf /etc/modprobe.conf; do
  54.             if [ -e "$file" ]; then
  55.                 grep -v "options $MODULE " $file > $file.new
  56.                 mv $file.new $file
  57.             else
  58.                 touch $file
  59.             fi
  60.             echo "options $MODULE $PARAMS" >> $file
  61.         done
  62.     fi
  63. fi
  64.