On Fri, Apr 1, 2011 at 2:36 AM, Seblu <[email protected]> wrote:
> On Fri, Apr 1, 2011 at 1:54 AM, Dave Reisner <[email protected]> wrote:
>> On Fri, Apr 01, 2011 at 01:35:18AM +0200, Rémy Oudompheng wrote:
>>> On 2011/4/1 Dave Reisner <[email protected]> wrote:
>>> > 1) Word split /proc/cmdline into an array and use in_array from
>>> > /etc/rc.d/functions:
>>> >
>>> > kern_cmdline=($(< /proc/cmdline))
>>> > if in_array "${kern_cmdline[@]}" verbose; then
>>> >  ...
>>> >
>>> > 2) Word split /proc/cmdline with printf and use grep -x:
>>> >
>>> > if printf "%s\n" $(</proc/cmdline) | grep x 'verbose'; then
>>> >  ...
>>> >
>>>
>>> These look very strange. I would be more tempted to inline the in_array and 
>>> say:
>>>
>>> /bin/dmesg -n 3
>>> for cmdlinearg
>>> do
>>>     [[ $cmdlinearg == "verbose" ]] && /bin/dmesg -n 8
>>> done
>>>
>>> which seems more readable and less magical to me.
>>>
>>> Rémy.
>>
>> Sure, also valid. It occurred to me that the array isn't actually
>> necessary, as you can just word split in passing to in_array but
>> inlining here is fine too.
>>
>> one minor nit to pick with the innards of your loop...
>>
>>  [[ $arg = "verbose" ]] && { /bin/dmesg -n 8; break; }
>>
>> dave
>>
>> p.s. particularly as of late, I've found that "readable" is highly
>> subjective, particularly when it comes to Bash.
>>
>>
>
> I propose two patches (mutualy exclusive), taking code from dave and remy.
>
> PS: Thomas, i (currently) cannot send patch directly from my git. Gonna 
> happen.
>
Sorry, little mistake in previous one.


-- 
Sébastien Luttringer
www.seblu.net
From ce6d03c7754f2468ed312fb382e7fb7859e614a3 Mon Sep 17 00:00:00 2001
From: Sebastien Luttringer <[email protected]>
Date: Fri, 1 Apr 2011 02:43:23 +0200
Subject: [initscripts patch] Fix console verbosity
To: [email protected]

This patch fix verbosity which use var exported by initcpio in place of kernel.

Signed-off-by: Sebastien Luttringer <[email protected]>
---
 rc.sysinit |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/rc.sysinit b/rc.sysinit
index 9d7c250..5ae3deb 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -31,13 +31,12 @@ fi
 # start up our mini logger until syslog takes over
 /sbin/minilogd
 
-# anything more serious than KERN_WARNING goes to the console
-# 'verbose' cmdline parameter enables more messages
-if [[ -n "$verbose" ]]; then
-	/bin/dmesg -n 8
-else
-	/bin/dmesg -n 3
-fi
+# Set console verbosity
+/bin/dmesg -n 3
+read cmdline < /proc/cmdline
+for cmdarg in $cmdline; do
+	[[ $cmdarg == "verbose" ]] && { /bin/dmesg -n 8; break; }
+done
 
 HWCLOCK_PARAMS="--hctosys"
 case $HARDWARECLOCK in
-- 
-- 
Seblu

Reply via email to