Get rid of cat and grep
authorSeewer Philippe <philippe.seewer@bfh.ch>
Fri, 5 Jun 2009 14:10:52 +0000 (16:10 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 5 Jun 2009 14:10:52 +0000 (16:10 +0200)
modules.d/40network/ifup
modules.d/40network/install
modules.d/40network/kill-dhclient.sh
modules.d/95nbd/nbdroot
modules.d/95nfs/nfsroot
modules.d/95nfs/nfsroot-cleanup.sh
modules.d/99base/dracut-lib

index 981a207..e347da5 100755 (executable)
@@ -100,7 +100,8 @@ if [ -z "$ip" ]; then
     do_dhcp;
 else
     # spin through the kernel command line, looking for ip= lines
-    for p in $(cat /proc/cmdline); do
+    [ "$CMDLINE" ] || read CMDLINE </proc/cmdline;
+    for p in $CMDLINE; do
        [ -n "${p%ip=*}" ] && continue
        ip_to_var ${p#ip=}
        
index d480391..3a06f79 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-dracut_install ip dhclient hostname cat
+dracut_install ip dhclient hostname
 # Include wired net drivers, excluding wireless
 for modname in `find "/lib/modules/$kernel/kernel/drivers" -name '*.ko'`; do
   if nm -uPA $modname | grep -q eth_type_trans; then
index 19f258a..54b3344 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/sh
 
 for f in /tmp/dhclient.*.pid; do
-    [ "$f" != "/tmp/dhclient.*.pid" ] && kill $(cat $f)
+    [ -e $f ] || continue
+    read PID < $f;
+    kill $PID;
 done
index 1130cca..3475239 100755 (executable)
@@ -71,17 +71,7 @@ getarg ro && nbdrw=ro
 getarg rw && nbdrw=rw
 fsopts=${fsopts+$fsopts,}${nbdrw}
 
-if [ ! -e /tmp/nbd.present ]; then
-    cat /proc/devices | while read t1 devt; do
-       if [ "$devt" = "nbd" ]; then
-           >/tmp/nfs.present
-           break
-       fi
-    done
-fi
-if [ ! -e /tmp/nbd.present ]; then
-    modprobe nbd || exit 1
-fi
+incol2 /proc/devices nbd || modprobe nbd || exit 1
 
 # XXX better way to wait for the device to be made?
 i=0
index 2d08b68..da002c5 100755 (executable)
@@ -46,16 +46,8 @@ getarg rw && nfsrw=rw
 nfsflags=${nfsflags+$nfsflags,}${nfsrw}
 
 # Load the modules so the filesystem type is there
-if [ ! -e /tmp/nfs.present ]; then
-    cat /proc/filesystems | while read t1 fst; do
-        case "$fst" in
-           nfs|nfs4) >/tmp/nfs.present; break ;;
-       esac
-    done
-fi
-if [ ! -e /tmp/nfs.present ]; then
-    modprobe nfs || exit 1
-fi
+incol2 /proc/filesystems nfs  || modprobe nfs || exit 1
+incol2 /proc/filesystems nfs4 || modprobe nfs || exit 1
 
 # XXX don't forget to move /var/lib/nfs/rpc_pipefs to new /
 
index 4bfdd34..1a5f187 100644 (file)
@@ -4,7 +4,7 @@ pid=$(pidof rpc.statd)
 pid=$(pidof rpcbind)
 [ -n "$pid" ] && kill $pid
 
-if grep -q rpc_pipefs /proc/mounts; then 
+if incol2 /proc/mounts /var/lib/nfs/rpc_pipefs; then 
     # try to create the destination directory
     [ -d $NEWROOT/var/lib/nfs/rpc_pipefs ] || mkdir -p $NEWROOT/var/lib/nfs/rpc_pipefs 2>/dev/null
 
index e3f4794..df9cb52 100644 (file)
@@ -36,3 +36,17 @@ check_occurances() {
 
     [ $count -eq $expected ]
 }
+
+incol2() {
+    local dummy check;
+    local file="$1";
+    local str="$2";
+
+    [ -z "$file" ] && return;
+    [ -z "$str"  ] && return;
+
+    while read dummy check restofline; do
+       [ "$check" = "$str" ] && return 0
+    done < $file
+    return 1
+}