[yocto] [PATCH] update-rc.d: support enable/disable function

Changqing Li changqing.li at windriver.com
Wed Dec 5 00:13:18 PST 2018


ping

On 11/26/18 11:35 AM, Changqing Li wrote:
> Ping
>
> On 11/9/18 5:44 PM, changqing.li at windriver.com wrote:
>> From: Changqing Li <changqing.li at windriver.com>
>>
>> Add support of enable/disable function, so that user can keep
>> previous config after upgrade package
>>
>> Signed-off-by: Changqing Li <changqing.li at windriver.com>
>> ---
>>   update-rc.d | 70 
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 70 insertions(+)
>>
>> diff --git a/update-rc.d b/update-rc.d
>> index e07cf85..1ba97d3 100644
>> --- a/update-rc.d
>> +++ b/update-rc.d
>> @@ -27,6 +27,7 @@ usage()
>>   usage: update-rc.d [-n] [-f] [-r <root>] <basename> remove
>>          update-rc.d [-n] [-r <root>] [-s] <basename> defaults [NN | 
>> sNN kNN]
>>          update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN 
>> runlvl [runlvl] [...] .
>> +       update-rc.d [-n] [-r <root>] [-s] <basename> enable|disable 
>> [S|2|3|4|5]
>>           -n: not really
>>           -f: force
>>           -v: verbose
>> @@ -101,6 +102,43 @@ makelinks()
>>       done
>>   }
>>   +renamelink()
>> +{
>> +    local oldstartstop newstartstop lev oldnn newnn
>> +    if [ "x$1" = "xS" ]; then
>> +        oldstartstop="K"
>> +        newstartstop="S"
>> +    else
>> +        oldstartstop="S"
>> +        newstartstop="K"
>> +    fi
>> +
>> +    lev=$2
>> +    if ls ${etcd}${lev}.d/${oldstartstop}*${bn} >/dev/null 2>&1; then
>> +        oldnn=`basename ${etcd}${lev}.d/${oldstartstop}*${bn}|cut 
>> -c2-3`
>> +        newnn=$[100-$oldnn]
>> +        [ $verbose -eq 1 ] && echo "rename 
>> ${etcd}${lev}.d/${oldstartstop}${oldnn}${bn} -> 
>> ${etcd}${lev}.d/${newstartstop}${newnn}${bn}"
>> +        if [ $notreally -eq 0 ];then
>> +            mv ${etcd}${lev}.d/${oldstartstop}${oldnn}${bn} 
>> ${etcd}${lev}.d/${newstartstop}${newnn}${bn}
>> +        fi
>> +        if [ $dostart -eq 1 ] && [ $newstartstop = "S" ] && [ $lev = 
>> $RUNLEVEL ]; then
>> +            $fn start || true
>> +        fi
>> +    fi
>> +
>> +}
>> +
>> +renamelinks()
>> +{
>> +    if [ $# -eq 2 ]; then
>> +        renamelink $1 $2
>> +    else
>> +        for i in 2 3 4 5 S; do
>> +            renamelink $1 $i
>> +        done
>> +    fi
>> +}
>> +
>>   while [ $# -gt 0 ]; do
>>       case $1 in
>>           -n)    notreally=1
>> @@ -221,6 +259,13 @@ case $1 in
>>           ;;
>>         start | stop)
>> +        if [ $# -lt 4 ]
>> +        then
>> +            echo "Not enough arguments"
>> +            usage
>> +            exit 1
>> +        fi
>> +
>>           while [ $# -gt 0 ]; do
>>               if [ $1 = "start" ]; then
>>                   letter=S
>> @@ -251,6 +296,31 @@ case $1 in
>>           makelinks
>>           ;;
>>   +    enable | disable)
>> +        if [ $1 = "enable" ]; then
>> +            letter=S
>> +        elif [ $1 = "disable" ]; then
>> +            letter=K
>> +        else
>> +            usage
>> +            exit 1
>> +        fi
>> +        shift
>> +        if [ $# -gt 0 ]
>> +        then
>> +            case $1 in
>> +                S|2|3|4|5)
>> +                    renamelinks $letter $1
>> +                    ;;
>> +                *)
>> +                    usage
>> +                    exit 1
>> +                    ;;
>> +            esac
>> +        else
>> +            renamelinks $letter
>> +        fi
>> +        ;;
>>       *)
>>           usage
>>           exit 1
>
-- 
BRs

Sandy(Li Changqing)



More information about the yocto mailing list