Adding debian version 4.0~a1-1.
[live-boot-grml.git] / scripts / boot / 3020-swapon
index 158d81b..3df90de 100755 (executable)
@@ -2,20 +2,34 @@
 
 #set -e
 
-Swapon ()
+Swap ()
 {
-       _DEVICES="/dev/sd* /dev/vd*"
+       for _PARAMETER in ${_CMDLINE}
+       do
+               case "${_PARAMETER}" in
+                       live-boot.swap=*|swap=*)
+                               LIVE_SWAP="true"
+                               LIVE_SWAP_DEVICES="${_PARAMETER#*swap=}"
+                               ;;
 
-       if [ -e /run ]
-       then
-               # wheezy
-               _FSTAB="/root/etc/fstab.d/swap"
-       else
-               # squeeze
-               _FSTAB="/root/etc/fstab"
-       fi
+                       live-boot.swap|swap)
+                               LIVE_SWAP="true"
+                               ;;
+               esac
+       done
+
+       case "${LIVE_SWAP}" in
+               true)
+                       ;;
+
+               *)
+                       return 0
+                       ;;
+       esac
+
+       LIVE_SWAP_DEVICES="${LIVE_SWAP_DEVICES:-/dev/sd* /dev/vd*}"
 
-       for _DEVICE in ${_DEVICES}
+       for _DEVICE in $(echo ${LIVE_SWAP_DEVICES} | sed -e 's|,| |g')
        do
                if [ ! -b "${_DEVICE}" ]
                then
@@ -34,15 +48,15 @@ Swapon ()
        done
 
        # Remove all auto swap entries
-       if grep -qs "swap swap" "${_FSTAB}"
+       if grep -qs "swap swap" /root/etc/fstab.d/swap
        then
-               grep -v "swap swap" "${_FSTAB}" > "${_FSTAB}".tmp
-               mv "${_FSTAB}".tmp "${_FSTAB}"
+               grep -v "swap swap" /root/etc/fstab.d/swap > /root/etc/fstab.d/swap.tmp
+               mv /root/etc/fstab.d/swap.tmp /root/etc/fstab.d/swap
        fi
 
        # Add new swap entries
-       for _DEVICE in _SWAP_DEVICES
+       for _DEVICE in ${_SWAP_DEVICES}
        do
-               echo "${_DEVICE} swap swap defaults 0 0" >> "${_FSTAB}"
+               echo "${_DEVICE} swap swap defaults 0 0" >> /root/etc/fstab.d/swap
        done
 }