On Friday 10 January 2014 22:07:52 Chris Reffett wrote:
> Attached is a patch to test if Portage is going to write to a
> read-only filesystem and print out the list of filesystems that need
> to be remounted RW. This leaves ${D} intact rather than having some
> files moved before hitting the RO filesystem. Fixes bug 378869. Since
> git.overlays.gentoo.org is down, I haven't had the chance to rebase
> this against latest, but I can resubmit if it doesn't cleanly apply.
> This is my first patch to the list, so I apologize if I didn't submit
> correctly.

please use `git send-email` to post patches.  attaching them makes things 
harder to review.

> --- /dev/null
> +++ b/pym/portage/util/checkwriteable.py
>
> +             with open("/proc/mounts") as procmounts:

this won't work on non-Linux systems

also, as a general style thing, unless there's a real need for the var to have 
a "full" name, just use "f" or "fp"

> +                     roregex = re.compile(r'(\A|,)ro(\Z|,)')
> +                     for line in procmounts:
> +                             if roregex.search(line.split(" ")[3].strip()) 
> is not None:
> +                                     romount = line.split(" ")[1].strip()
> +                                     ro_filesystems.add(romount)

ad hoc parsing of /proc/mounts isn't a good thing.  at the risk of over 
engineering, there should be a func that would take care of expanding the 
mount paths into a list of namedcollections (one per mount).  then you simply 
walk it looking at its options.

> +     for directory in dir_list:
> +             for filesystem in ro_filesystems:
> +                     if re.match(filesystem, directory):
> +                             ro_filesystems_written.add(filesystem)

there's no need to use re and in fact you don't want to.  you're looking at 
wrong strings here, not regexes.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to