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.

> ---
>  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
>



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

Reply via email to