[PATCH] fwts-frontend: v2 update to conditional logic to better detect if we're booted via casper and additional logic to toggle auto shutdown behaviour when testing

Chris Van Hoof vanhoof at canonical.com
Mon Jan 30 15:10:03 UTC 2012


On 01/30/2012 04:49 AM, Keng-Yü Lin wrote:
> On Fri, Jan 27, 2012 at 11:31 PM, Chris Van Hoof <vanhoof at canonical.com> wrote:
>> * v2 use $EUID vs id to check for uid.
>>
>> Signed-off-by: Chris Van Hoof <vanhoof at canonical.com>
>> ---
>>  live-image/fwts-frontend-text |   19 ++++++++++++++++---
>>  1 files changed, 16 insertions(+), 3 deletions(-)
>>
>> diff --git a/live-image/fwts-frontend-text b/live-image/fwts-frontend-text
>> index dbf6635..fabdfb2 100755
>> --- a/live-image/fwts-frontend-text
>> +++ b/live-image/fwts-frontend-text
>> @@ -25,12 +25,21 @@ FWTS_DATE=`date +%d%m%Y`
>>  FWTS_TIME=`date +%H%M`
>>
>>  #
>> +# Check if executed as root or with sudo
>> +#
>> +if [ $EUID -ne 0 ]; then
>> +       echo "`basename $0`: must be executed with sudo"
>> +       exit 1
>> +fi
>> +
>> +#
>>  # for debugging, use:
>>  # -  WORK_DIR=./fwts/$FWTS_DATE/$FWTS_TIME
>>  # if booting in fwts-live
>>  # - change FWTS_AUTO_SHUTDOWN= to alter default shutdown after testing completion
>>  #
>>  WORK_DIR=/fwts/$FWTS_DATE/$FWTS_TIME
>> +FWTS_AUTO_SHUTDOWN="$1"
>>  SHUTDOWN_AT_END=1
>>
>>  #
>> @@ -42,10 +51,14 @@ if [ `grep -qs boot=casper /proc/cmdline; echo $?` -eq 0 ]; then
>>  fi
>>
>>  #
>> -# check /proc/cmdline for FWTS_AUTO_SHUTDOWN to toggle auto shutdown
>> +# check /proc/cmdline and argv[1] for FWTS_AUTO_SHUTDOWN to toggle auto shutdown
>>  #
>> -if [ `grep -qs FWTS_AUTO_SHUTDOWN=1 /proc/cmdline; echo $?` -ne 0 -a $CASPER_DETECTED -eq 1 ]; then
>> -       SHUTDOWN_AT_END=0
>> +if [ `grep -qs FWTS_AUTO_SHUTDOWN=1 /proc/cmdline; echo $?` -ne 0 ]; then
>> +       if [ -n "${CASPER_DETECTED:+x}" ]; then
>> +               SHUTDOWN_AT_END=0
>> +       elif [ -n "${FWTS_AUTO_SHUTDOWN:+x}" ]; then
>> +               SHUTDOWN_AT_END=0
> 
> Hope I understand this correctly: this means when executing
> fwts-frontend-text plus anything in argv[1] it does not shut down the
> machine in the end.

Correct argv[1] is just a flag to toggle SHUTDOWN_AT_END when testing
the script, without having to edit it.

> But what is this used for if we can change the auto-shutdown behaviour
> with FWTS_AUTO_SHUTDOWN in cmdline?

FWTS_AUTO_SHUTDOWN= is used at boot in fwts-live to toggle the same
behaviour since /usr/bin/fwts-frontend-text is read-only in a casper
only boot environment, and the script is automatically executed upon
boot, so you have no time to pass argv[1] before it executes.

> From the source-level, when $FWTS_AUTO_SHUTDOWN has a value,
> SHUTDOWN_AT_END=0. Shall it be named by FWTS_NO_AUTO_SHUTDOWN instead?

I'm happy with how things are named now, but if you think
FWTS_NO_AUTO_SHUTDOWN is a more clean approach, I'm happy to go that route.

--chris






More information about the fwts-devel mailing list