Le vendredi 26 mars 2010 à 12:59 -0300, Lucas Meneghel Rodrigues a
écrit : 
> On Fri, Mar 26, 2010 at 10:18 AM, Jean Parpaillon
> <[email protected]> wrote:
> >  Add a function to get file mimetype
> >  Use mimetype to check if a file is to be cat|zcat|bzcat (instead of suffix)
> 
> Actually, we could use the standard lib module mimetypes to do this
> task. the patch could be rewritten as:
> 
> -    if file.endswith('.bz2'):
> +    if mimetypes.guess_type(file) == ('application/x-tar', 'bzip2'):
>         cat = 'bzcat'
> -    elif (file.endswith('.gz') or file.endswith('.tgz')):
> +    if mimetypes.guess_type(file) == ('application/x-tar', 'gzip'):
>         cat = 'zcat'
>     else:
>         cat = 'cat'
> 
> Provided the mimetypes module is also imported. Since the module
> interacts with libmagic and the mimetypes database files directly,
> it's a better solution.
> 

Hi, 
On my system (Python 2.5.4) and amongst official documentation,
mimetypes use file name and extensions to get the mimetypes, and not
libmagic.
And for tar.bz2 file, output is: ("application/x-tar", None)

Where is the trick ?

Regards,
Jean

> > ---
> >  client/bin/base_utils.py   |    4 ++--
> >  client/common_lib/utils.py |    6 ++++++
> >  2 files changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/client/bin/base_utils.py b/client/bin/base_utils.py
> > index b4f5646..0a96efb 100644
> > --- a/client/bin/base_utils.py
> > +++ b/client/bin/base_utils.py
> > @@ -47,9 +47,9 @@ def cat_file_to_cmd(file, command, ignore_status=0, 
> > return_output=False):
> >     else:
> >         run_cmd = utils.system
> >
> > -    if file.endswith('.bz2'):
> > +    if utils.get_file_mime(file) == 'application/x-bzip2':
> >         cat = 'bzcat'
> > -    elif (file.endswith('.gz') or file.endswith('.tgz')):
> > +    elif utils.get_file_mime(file) == 'application/x-gzip':
> >         cat = 'zcat'
> >     else:
> >         cat = 'cat'
> > diff --git a/client/common_lib/utils.py b/client/common_lib/utils.py
> > index ddbb34b..7d5413f 100644
> > --- a/client/common_lib/utils.py
> > +++ b/client/common_lib/utils.py
> > @@ -1191,3 +1191,9 @@ def sh_escape(command):
> >     command = command.replace('"', r'\"')
> >     command = command.replace('`', r'\`')
> >     return command
> > +
> > +
> > +def get_file_mime(path):
> > +    """ Return path mime type
> > +    """
> > +    return system_output("file --mime --brief %s" % path).strip()
> > --
> > 1.7.0
> >
> > _______________________________________________
> > Autotest mailing list
> > [email protected]
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >
> 
> 
> 

-- 
Jean Parpaillon - Kerlabs
HPC System Architect and Developer
Bâtiment Germanium
80 avenue des buttes de Coësmes
35700 Rennes - France
Tel.: +33 6 80 32 73 85
web : http://kerlabs.com/
im: [email protected]

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to