check_for_fat: Avoid comparing strings and bytes
authorSven Joachim <svenjoac@gmx.de>
Wed, 30 Oct 2019 16:28:07 +0000 (17:28 +0100)
committerSven Joachim <svenjoac@gmx.de>
Wed, 30 Oct 2019 16:28:07 +0000 (17:28 +0100)
By default Subprocess.open() opens file objects in binary mode, so the
"filesystem" variable is an array of bytes, and comparing it to a
string always yields false.  Fix that by explicitly opening the stream
in text mode.

grml2usb

index 3585976..eaeba08 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -790,7 +790,7 @@ def check_for_fat(partition):
 
     try:
         udev_info = subprocess.Popen(["/sbin/blkid", "-s", "TYPE", "-o", "value", partition],
-                                     stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+                                     stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
         filesystem = udev_info.communicate()[0].rstrip()
 
         if filesystem != "vfat":