"if not" also triggers when value is 0, use "if is None" instead
[grml2usb.git] / grml2usb
index 6d2a754..e1d7f5c 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -1472,7 +1472,7 @@ def install(image, device):
         logging.info("Using %s as install base", image)
     else:
         logging.info("Using ISO %s", image)
-        iso_mountpoint = tempfile.mkdtemp(prefix="grml2usb", dir=options.tmpdir)
+        iso_mountpoint = tempfile.mkdtemp(prefix="grml2usb", dir=os.path.abspath(options.tmpdir))
         register_tmpfile(iso_mountpoint)
         remove_image_mountpoint = True
         try:
@@ -1556,7 +1556,7 @@ def handle_mbr(device):
         return 0
 
     mbr_device, partition_number = get_device_from_partition(device)
-    if not partition_number:
+    if partition_number is None:
         logging.warn("Could not detect partition number, not activating partition")
 
     # if we get e.g. /dev/loop1 as device we don't want to put the MBR
@@ -1705,6 +1705,11 @@ def check_programs():
 
 def load_loop():
     """Runs modprobe loop and throws away it's output"""
+    if not which("modprobe"):
+        logging.critical("Fatal: modprobe not available, can not continue - sorry.")
+        logging.critical("Hint: is /sbin missing in PATH?")
+        sys.exit(1)
+
     proc = subprocess.Popen(["modprobe", "loop"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     proc.wait()