On 04/ 5/10 10:44 AM, Keith Mitchell wrote:
On 04/ 5/10 05:16 AM, [email protected] wrote:
On 04/ 4/10 11:41 PM, Jack Schwartz wrote:
Hi everyone.
This easy webrev is for a fix to the DC finalizer script which
copies files into the boot_archive. It fixes how whole-directories
are excluded.
I have tested this fix by having built several images during Driver
Update testing.
Webrev:
http://cr.opensolaris.org/~schwartz/100404.1/webrev/index.html
Bug:
http://defect.opensolaris.org/bz/show_bug.cgi?id=15290
Thanks,
Jack
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
Hey Jack,
I see what I think might be a problem with your solution. What if the
item you are attempting to match is a substring match and not the
full match?
For example:
>>> excitem="AAAA/BBB/CCC"
>>> excitem.find("AA")
0
This matches "AA" even though I think you only want to match "AAAA"
I think this proposed solution might be safer:
>>> EXCLUDES = "one "
>>> for i in excitem.split('/'):
... if "AAA" == i:
... EXCLUDES = EXCLUDES + "more excludes"
...
>>> print EXCLUDES
one
>>>
Correctly does not match "AAA"
>>> for i in excitem.split('/'):
... if "AAAA" == i:
... EXCLUDES = EXCLUDES + "more excludes"
...
>>> print EXCLUDES
one more excludes
>>>
but does correcly match "AAAA"
What do you think?
I'm not sure that'll work in all cases Joe? Such as if "foo/bar" were
included, and "bar" were excluded, it would match? But it's early on a
Monday and maybe I'm not thinking it through.
Another point to consider is, it doesn't *seem* like there would be
ill effects in the scenario you bring up. For example, consider the
following set of dirs:
foo
foo/bar
foo/bartwo
Suppose you wanted to include foo, include foo/bartwo, and exclude
foo/bar. Based on the code, "foo/bar" would 'match' against both
foo/bar and foo/bartwo as it looped, but at line 163 all that's added
is a "grep -v foo/bar" - so no harm done, in this case, in being
overzealous.
That said:
Jack, please use "if excitem.startswith(item):" instead of parsing for
"...find(..) == 0".
Good point Keith, it would work but it could contain false matches which
might lead to other issues.
Consider the following dirs (without "foo/bar"):
foo/
foo/bartwo
With the same match criteria you sited:
> Suppose you wanted to include foo, include foo/bartwo, and exclude
foo/bar.
Based on the code, "foo/bar" would 'match' against foo/bartwo as it
looped. At line 163 "grep -v foo/bar" would be added even though it is
not in the list.
Perhaps no harm done, in this case, but it is an incorrectly match. I
think it would be better to fix the code to only include correct matches
as this might lead to a different bug in the future or make the code
harder to understand.
Joe
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss