On 03/17/10 04:23 PM, Sean Wilcox wrote:
> A couple of comments on the notes below...
>
> On 03/17/10 03:58 PM, Antonello Cruz wrote:
>> Please find my feedback for usr/src/cmd/svc/milestone/manifest-import
>> below.
>>
>> usr/src/cmd/svc/milestone/manifest-import
>>     61: if you are looking for the prorpety manifestfile, why not
>>         simplify by doing
>>
>>         smfmfiles=`/usr/bin/svcprop smf/manifest | \
>>             awk '/\/manifestfile / {print $3}' | grep '^/lib'`
>>
>>         You could probably make awk match the '^/lib' in the same
>>         command, but you'd have to ask barts how to do it ;-)
>>
>>         Additionally, why are you using egrep at the end of the pipe in
>>         the original code?
>>
>>     64: we can use a similar simplification as above
>>
>     64: we can use a similar simplification as above
>
> Not sure I remember why we used egrep there... but can definitely make 
> the
> change to the awk to get the manifestfile keyword.  As I look at this 
> what
> about a case where a manifest file is named something like 
> foo_manifestfile.xml
> could that trip this up?  Need to investigate this and harden this 
> code section
> a bit.
>
>

I did  a bit of playing around with this, this morning it looks like the 
simplification could be the following :

function cleanup_needwork {
         if [ "$early" == true ]; then
                 smfmfiles=`/usr/bin/svcprop smf/manifest | \
                     awk '(/^lib_/) && (/\/manifestfile /) {print $3}'`
         else
                 smfmfiles=`/usr/bin/svcprop smf/manifest |  \
                     awk '/\/manifestfile / {print $3}'`
         fi

         nw=`/lib/svc/bin/mfstscan $smfmfiles 2>&1 1>/dev/null`
         [ "$nw" ] && return 1

         return 0
}

And checking for the specific property with the '/manifestfile ' makes 
sure we get the right thing.  Unless anybody can
see any holes I'll update the code.


-- 
Sean Wilcox
303.272.9711
x79711

Reply via email to