VERSION = "0.1.0"
import argparse
-import os
import sys
-import stat
import time
import logging
from bmaptools import BmapFlasher, BmapHelpers
log = setup_logger(logging.INFO)
try:
- is_block_device = stat.S_ISBLK(os.stat(args.bdev).st_mode)
- except OSError as err:
- log.error("cannot access block device '%s': %s" \
- % (args.bdev, err.strerror))
- raise SystemExit(1)
-
- if not is_block_device:
- log.warning("'%s' is not a block device!" % args.bdev)
-
- try:
flasher = BmapFlasher.BmapFlasher(args.image, args.bdev, args.bmap)
except BmapFlasher.Error as err:
log.error(str(err))
raise SystemExit(1)
+ if not flasher.target_is_block_device:
+ log.warning("'%s' is not a block device!" % args.bdev)
+
start_time = time.time()
if not args.bmap:
log.info("no block map given (see the --bmap option)")
raise Error("cannot open block device '%s' in exclusive mode: %s" \
% (self._bdev_path, err.strerror))
+ try:
+ st_mode = os.fstat(self._f_bdev).st_mode
+ except OSError as err:
+ raise Error("cannot access block device '%s': %s" \
+ % (self._bdev_path, err.strerror))
+
+ self.target_is_block_device = stat.S_ISBLK(st_mode)
+
# Turn the block device file descriptor into a file object
try:
self._f_bdev = os.fdopen(self._f_bdev, "wb")
self.bmap_mapped_size = None
self.bmap_mapped_size_human = None
self.bmap_mapped_percent = None
+ self.target_is_block_device = None
self._open_block_device()
self._open_image_file()