V2 Add Logic to detect file type by extension

Message ID 20220504195137.1790994-1-woodard@redhat.com
State New
Headers
Series V2 Add Logic to detect file type by extension |

Commit Message

Ben Woodard May 4, 2022, 7:51 p.m. UTC
  From: vsoch <vsoch@users.noreply.github.com>

Changes since V1
Merge in the correct version of the patch not an early diagnostic
one.

Fedabipkgdiff uses mimetypes to detect what file type it is looking
at. In some minimal versions of the OS, in particular container
images, the package that includes all the mimetypes may not be
installed. This allows fedabipkgdiff to fall back to using the
extension.

    * tools/fedabipkgdiff - add logic to detect file type by extension

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Reviewed-by: Ben Woodard <woodard@redhat.com>
---
 tools/fedabipkgdiff | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Dodji Seketeli May 12, 2022, 10:12 a.m. UTC | #1
Ben Woodard via Libabigail <libabigail@sourceware.org> a écrit:

> From: vsoch <vsoch@users.noreply.github.com>
>
> Changes since V1
> Merge in the correct version of the patch not an early diagnostic
> one.
>
> Fedabipkgdiff uses mimetypes to detect what file type it is looking
> at. In some minimal versions of the OS, in particular container
> images, the package that includes all the mimetypes may not be
> installed. This allows fedabipkgdiff to fall back to using the
> extension.
>
>     * tools/fedabipkgdiff - add logic to detect file type by extension
>
> Signed-off-by: vsoch <vsoch@users.noreply.github.com>
> Reviewed-by: Ben Woodard <woodard@redhat.com>


Applied to master, thanks!

Cheers,
  

Patch

diff --git a/tools/fedabipkgdiff b/tools/fedabipkgdiff
index dc80a6ef..c05bd8b1 100755
--- a/tools/fedabipkgdiff
+++ b/tools/fedabipkgdiff
@@ -213,6 +213,10 @@  def is_rpm_file(filename):
     mimetype = mimetypes.guess_type(filename)[0] if isfile else None
     isrpm = (mimetype == 'application/x-redhat-package-manager'
              or mimetype == 'application/x-rpm')
+
+    # Most systems won't have rpm defined as a mimetype
+    if not mimetype and filename.endswith('.rpm'):
+        isrpm = True
     logger.debug('is_rpm_file(\'%s\'): isfile=%s, mimetype=\'%s\', isrpm=%s',
                  filename, isfile, mimetype, isrpm)
     return isrpm