yes, i'm writing it, here is the code i'm using, last regexp is the one i'm
asking for, it seems to be working, but i'll test it further before using
it in production:

def is_skippable_file(filename):
    '''Returns True if file is skippable'''

    regexps = ['.*\.rpm(save|new)$',
               '.*\.dpkg-(old|new)$',
               '.*\.swp$',
               '.*~$',
               '(^|.*/)\.(?!.*\/.*)']

    for regexp in regexps:
        if re.match(regexp, filename):
            return True

    return False


On Mon, May 28, 2012 at 12:53 PM, Seth Arnold <[email protected]> wrote:

> I'd love to see the tools and parser using the exact same code to figure
> out which files to skip. Is there an exported library call that could be
> used in the tools to replace this function?
>
> -----Original Message-----
> From: John Johansen <[email protected]>
> Sender: [email protected]
> Date: Mon, 28 May 2012 10:19:29
> To: Nicolas Valcárcel<[email protected]>
> Cc: <[email protected]>
> Subject: Re: [apparmor] Skippable files
>
> On 05/28/2012 09:23 AM, Nicolas Valcárcel wrote:
> > Hi, i'm working on rewriting to python3 some apparmor tools, but i'm not
> a perl expert, nor know apparmor in deep, so i got a stopper here that i
> hope you can help me with.
> >
> hey Nicolas
>
> > In Immunix/AppArmor.pm there is a function isSkippableFile which has a
> regexp i don't understand:
> > $path =~ /(^|\/)\.[^\/]*$/               <--- this one i don't understand
> dot files, but looking at it, it has an issue
>  '.' followed by anything that is not a path
> or
>  '/.' followed by anything that is not a path, note the leading '/' is not
> anchored
>
> so
>
>  .
>  ..
>  .foo
>  /.
>  /..
>  /.foo
>  bar/.foo
>  /bar/.foo
>
>  but not
>
>  ./
>  .foo/
>  .foo/bar
>  /.foo/
>  /.foo/bar
>
> now for where it has a problem, since the leading '/' is unanchored
>  /.foo/.bar
>
> will match
>
>
> > $path =~ /\.rpm(save|new)$/       <--- this would be anything ending in
> .rpmsave or .rpmnew?
> yes
>
> > $path =~ /\.dpkg-(old|new)$/       <--- this would be anything ending in
> .dpkg-old or .dpkg-new?
> yes
>
> > $path =~ /\.swp$/                      <--- this would be anything
> ending in .swp?
> yes
>
> > $path =~ /\~$/);                         <--- this would be anything
> ending in ~?
> >
> yes
>
> --
> AppArmor mailing list
> [email protected]
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/apparmor
>



-- 
Nicolas Valcárcel
Gerente IT / CTO
Celular: (511) 976 330 707
-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to