slitaz-boot-scripts diff etc/init.d/bootopts.sh @ rev 393

network.sh: better handle WEP connections, handle EAP, store Wi-Fi neworks by default; network.conf: migrate to extended format to support EAP arguments, and few more.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Mar 23 02:01:21 2015 +0200 (2015-03-23)
parents ecf17d3e06f4
children dcdb496ee31f
line diff
     1.1 --- a/etc/init.d/bootopts.sh	Sun Jan 11 11:12:24 2015 +0100
     1.2 +++ b/etc/init.d/bootopts.sh	Mon Mar 23 02:01:21 2015 +0200
     1.3 @@ -16,15 +16,15 @@
     1.4  }
     1.5  
     1.6  # Parse /proc/cmdline for boot options.
     1.7 -echo "Checking for SliTaz cmdline options..."
     1.8 +echo 'Checking for SliTaz cmdline options...'
     1.9  
    1.10  # Default user account without password (uid=1000). In live mode the option
    1.11  # user=name can be used, but user must be added before home= to have home dir.
    1.12  # This option is not handled by a loop and case like others and has no
    1.13  # effect on an installed system.
    1.14 -if ! grep -q "100[0-9]:100" /etc/passwd; then
    1.15 +if ! grep -q '100[0-9]:100' /etc/passwd; then
    1.16  
    1.17 -	if fgrep -q "user=" /proc/cmdline; then
    1.18 +	if fgrep -q 'user=' /proc/cmdline; then
    1.19  		USER=$(cat /proc/cmdline | sed 's/.*user=\([^ ]*\).*/\1/')
    1.20  		# Avoid usage of an existing system user or root.
    1.21  		if grep -q ^$USER /etc/passwd; then
    1.22 @@ -33,38 +33,37 @@
    1.23  	else
    1.24  		USER=tux
    1.25  	fi
    1.26 -	
    1.27 +
    1.28  	# Make sure we have users applications.conf
    1.29 -	if [ ! -f "/etc/skel/.config/slitaz/applications.conf" -a \
    1.30 -	     -f "/etc/slitaz/applications.conf" ]; then
    1.31 +	if [ ! -f '/etc/skel/.config/slitaz/applications.conf' -a \
    1.32 +		-f '/etc/slitaz/applications.conf' ]; then
    1.33  		mkdir -p /etc/skel/.config/slitaz
    1.34  		cp /etc/slitaz/applications.conf /etc/skel/.config/slitaz
    1.35  	fi
    1.36 -	
    1.37 +
    1.38  	echo -n "Configuring user and group: $USER..."
    1.39 -	adduser -D -s /bin/sh -g "SliTaz User" -G users -h /home/$USER $USER
    1.40 +	adduser -D -s /bin/sh -g 'SliTaz User' -G users -h /home/$USER $USER
    1.41  	passwd -d $USER >/dev/null
    1.42 -	for group in audio cdrom video tty plugdev disk
    1.43 -	do
    1.44 -		addgroup $USER ${group}
    1.45 +	for group in audio cdrom video tty plugdev disk; do
    1.46 +		addgroup $USER $group
    1.47  	done
    1.48  	status
    1.49 -	
    1.50 +
    1.51  	# Slim default user
    1.52  	if [ -f /etc/slim.conf ]; then
    1.53 -		sed -i s/"default_user .*"/"default_user    $USER"/ /etc/slim.conf
    1.54 +		sed -i "s|default_user .*|default_user    $USER|" /etc/slim.conf
    1.55  	fi
    1.56  fi
    1.57  
    1.58 -for opt in $(cat /proc/cmdline)
    1.59 -do
    1.60 +for opt in $(cat /proc/cmdline); do
    1.61  	case $opt in
    1.62  		eject)
    1.63  			# Eject cdrom.
    1.64  			eject /dev/cdrom ;;
    1.65  		autologin)
    1.66  			# Autologin option to skip first graphic login prompt.
    1.67 -			echo "auto_login        yes" >> /etc/slim.conf ;;
    1.68 +			sed -i '/auto_login .*/d' /etc/slim.conf
    1.69 +			echo 'auto_login        yes' >> /etc/slim.conf ;;
    1.70  		lang=*)
    1.71  			# Check for a specified locale (lang=*).
    1.72  			LANG=${opt#lang=}
    1.73 @@ -79,7 +78,9 @@
    1.74  			# Check for a specified console font (font=*).
    1.75  			FONT=${opt#font=}
    1.76  			echo -n "Setting console font to: $FONT..."
    1.77 -			for con in 1 2 3 4 5 6; do setfont $FONT -C /dev/tty$con; done
    1.78 +			for con in 1 2 3 4 5 6; do
    1.79 +				setfont $FONT -C /dev/tty$con
    1.80 +			done
    1.81  			status ;;
    1.82  		home=*)
    1.83  			# Check for a specified home partition (home=*) and check for
    1.84 @@ -88,32 +89,37 @@
    1.85  			DEVICE=${opt#home=}
    1.86  			[ "$DEVICE" = "usb" ] && DEVICE="$(usb_device)1"
    1.87  			echo "Home has been specified to $DEVICE..."
    1.88 -			DEVID=`/sbin/blkid | sed 'p;s/"//g' | fgrep "$DEVICE" | sed 's/:.*//;q'`
    1.89 +
    1.90 +			DEVID=$(/sbin/blkid | sed 'p;s/"//g' | fgrep "$DEVICE" | sed 's/:.*//;q')
    1.91  			if [ -z "$DEVID" ]; then
    1.92 -				USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use`
    1.93 +				USBDELAY=$(cat /sys/module/usb_storage/parameters/delay_use)
    1.94  				USBDELAY=$((2+$USBDELAY))
    1.95  				echo "Sleeping $USBDELAY s to let the kernel detect the device... "
    1.96  				sleep $USBDELAY
    1.97  			fi
    1.98 -			USER=`cat /etc/passwd | sed '/:1000:/!d;s/:.*//;q'`
    1.99 +
   1.100 +			USER=$(cat /etc/passwd | sed '/:1000:/!d;s/:.*//;q')
   1.101  			DEVID=$DEVICE
   1.102  			if [ -x /sbin/blkid ]; then
   1.103  				# Can be a label, uuid, type or devname. DEVID gives us first: /dev/name.
   1.104 -				DEVID=`/sbin/blkid | sed 'p;s/"//g' | fgrep "$DEVICE" | sed 's/:.*//;q'`
   1.105 +				DEVID=$(/sbin/blkid | sed 'p;s/"//g' | fgrep "$DEVICE" | sed 's/:.*//;q')
   1.106  			fi
   1.107  			DEVID=${DEVID##*/}
   1.108 +
   1.109  			if [ -n "$DEVID" ] && fgrep -q "$DEVID" /proc/partitions ; then
   1.110  				echo "Mounting /home on /dev/$DEVID... "
   1.111  				[ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files
   1.112  				mount /dev/$DEVID /home &&
   1.113  				case "$(/sbin/blkid | grep /dev/$DEVID:)" in
   1.114 -				*\"ntfs\"*|*\"vfat\"*) mount.posixovl -F /home -- -oallow_other -odefault_permissions -osuid ;;
   1.115 +				*\"ntfs\"*|*\"vfat\"*)
   1.116 +					mount.posixovl -F /home -- -oallow_other -odefault_permissions -osuid ;;
   1.117  				esac
   1.118  				mount /home -o remount,uid=1000,gid=100 2>/dev/null
   1.119 +
   1.120  				# Check if swap file must be generated in /home: swap=size (Mb).
   1.121  				# This option is only used within home=device.
   1.122 -				if grep -q "swap=[1-9]*" /proc/cmdline; then
   1.123 -					SWAP_SIZE=`sed 's/.*swap=\([^ ]*\).*/\1/' < /proc/cmdline`
   1.124 +				if grep -q 'swap=[1-9]*' /proc/cmdline; then
   1.125 +					SWAP_SIZE=$(sed 's/.*swap=\([^ ]*\).*/\1/' < /proc/cmdline)
   1.126  					# DD to gen a virtual disk.
   1.127  					echo "Generating swap file: /home/swap ($SWAP_SIZE)..."
   1.128  					dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE
   1.129 @@ -124,6 +130,7 @@
   1.130  			else
   1.131  				echo "Unable to find $DEVICE... "
   1.132  			fi
   1.133 +
   1.134  			# Move all user dir if needed.
   1.135  			if [ ! -d "/home/$USER" ] ; then
   1.136  				mv /tmp/$USER-files /home/$USER
   1.137 @@ -131,35 +138,37 @@
   1.138  			else
   1.139  				rm -rf /tmp/$USER-files
   1.140  			fi
   1.141 +
   1.142  			# Install all packages in /home/boot/packages. In live CD and
   1.143  			# USB mode the option home= mounts the device on /home, so we
   1.144  			# already have a boot directory with the Kernel and rootfs.
   1.145 -			if [ -d "/home/boot/packages" ]; then
   1.146 -				for pkg in /home/boot/packages/*.tazpkg
   1.147 -				do
   1.148 +			if [ -d '/home/boot/packages' ]; then
   1.149 +				for pkg in /home/boot/packages/*.tazpkg; do
   1.150  					tazpkg install $pkg
   1.151  				done
   1.152  			fi
   1.153 +
   1.154  			# We can have custom files in /home/boot/rootfs to overwrite
   1.155  			# the one packed into the Live system.
   1.156 -			if [ -d "/home/boot/rootfs" ]; then
   1.157 +			if [ -d '/home/boot/rootfs' ]; then
   1.158  				cp -a /home/boot/rootfs/* /
   1.159  			fi ;;
   1.160  		laptop)
   1.161  			# Enable Kernel Laptop mode.
   1.162 -			echo "5" > /proc/sys/vm/laptop_mode ;;
   1.163 +			echo '5' > /proc/sys/vm/laptop_mode ;;
   1.164  		mount)
   1.165  			# Mount all ext3 partitions found (opt: mount).
   1.166 +
   1.167  			# Get the list of partitions.
   1.168 -			DEVICES_LIST=`fdisk -l | sed '/83 Linux/!d;s/ .*//'`
   1.169 +			DEVICES_LIST=$(fdisk -l | sed '/83 Linux/!d;s/ .*//')
   1.170 +
   1.171  			# Mount filesystems rw.
   1.172 -			for device in $DEVICES_LIST
   1.173 -			do
   1.174 +			for device in $DEVICES_LIST; do
   1.175  				name=${device#/dev/}
   1.176  				# Device can be already used by home=usb.
   1.177  				if ! mount | grep ^$device >/dev/null; then
   1.178  					echo "Mounting partition: $name on /mnt/$name"
   1.179 -					mkdir /mnt/$name
   1.180 +					mkdir -p /mnt/$name
   1.181  					mount $device /mnt/$name
   1.182  				fi
   1.183  			done ;;
   1.184 @@ -172,7 +181,7 @@
   1.185  				PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1)
   1.186  			if [ -n "$PKGDEV" ]; then
   1.187  				echo -n "Mounting packages archive from $PKGDEV..."
   1.188 -				mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages
   1.189 +				mkdir -p /packages; mount -t iso9660 -o ro $PKGDEV /packages
   1.190  				status
   1.191  				/packages/install.sh
   1.192  			fi ;;