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

Changqing Li changqing.li at windriver.com
Wed Dec 26 19:01:29 PST 2018


Ping

On 12/5/18 4:13 PM, Changqing Li wrote:
> 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