Merge pull request #417 from alandmoore/fixes_397

Fixes 397
pull/418/head
multibootusb 6 years ago committed by GitHub
commit dab6d82e3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -101,8 +101,15 @@ def copy_mbusb_dir_usb(usb_disk):
:param usb_mount_path: Path to USB mount.
:return:
"""
# from .iso import iso_size
from .usb import details, PartitionNotMounted
try:
usb_details = details(usb_disk)
except PartitionNotMounted as e:
log(str(e))
return False
usb_details = config.usb_details
usb_mount_path = usb_details['mount_point']
result = ''
if not os.path.exists(os.path.join(usb_mount_path, "multibootusb")):
@ -150,7 +157,7 @@ def copy_mbusb_dir_usb(usb_disk):
if not os.path.exists(os.path.join(usb_mount_path, 'multibootusb', 'grub', 'core-msdos.img')):
shutil.copy(resource_path(os.path.join('data', 'multibootusb', 'grub', 'core-msdos.img')),
os.path.join(usb_mount_path, 'multibootusb', 'grub', 'core-msdos.img'))
if not os.path.exists(os.path.join(usb_mount_path, 'multibootusb', 'grub', 'x86_64-efi')):
log("New EFI modules does not exist. Copying now.")
shutil.copytree(resource_path(os.path.join('data', 'multibootusb', 'grub', 'x86_64-efi')),
@ -208,8 +215,13 @@ def strings(filename, _min=4):
def size_not_enough(iso_link, usb_disk):
from .iso import iso_size
from .usb import details, PartitionNotMounted
isoSize = iso_size(iso_link)
usb_details = config.usb_details
try:
usb_details = details(usb_disk)
except PartitionNotMounted as e:
log(str(e))
return False
usb_size = usb_details['size_free']
return bool(isoSize > usb_size)
@ -351,7 +363,7 @@ class MemoryCheck():
Cross platform way to checks memory of a given system. Works on Linux and Windows.
psutil is a good option to get memory info. But version 5.0 and only will work.
Source: https://doeidoei.wordpress.com/2009/03/22/python-tip-3-checking-available-ram-with-python/
Call this class like this:
Call this class like this:
mem_info = memoryCheck()
print(mem_info.value)
"""
@ -396,8 +408,8 @@ class MemoryCheck():
"""
totalMemory = os.popen("free -m").readlines()[1].split()[1]
return int(totalMemory)
if __name__ == '__main__':
log(quote("""Test-string"""))
log(has_digit("test-string-with-01-digit"))

@ -159,8 +159,12 @@ def install_progress():
:return:
"""
from . import progressbar
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
usb_details = config.usb_details
config.usb_mount = usb_details['mount_point']
usb_size_used = usb_details['size_used']
thrd = threading.Thread(target=install_distro, name="install_progress")

@ -55,7 +55,11 @@ def cli_install_distro():
# log(config.image_path + ' failed to pass integrity check...')
# exit(1)
else:
usb_details = details(config.usb_disk)
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
exit(1)
config.usb_mount = usb_details['mount_point']
config.usb_uuid = usb_details['uuid']
config.usb_label = usb_details['label']

@ -160,7 +160,7 @@ class AppGui(qemu.Qemu, Imager, QtWidgets.QMainWindow, Ui_MainWindow):
"""
self.ui.installed_distros.clear()
config.usb_disk = osdriver.listbox_entry_to_device(
self.ui.combo_drives.currentText())
self.ui.combo_drives.currentText())
if config.usb_disk == 0 or config.usb_disk:
# Get the GPT status of the disk and store it on a variable
try:

@ -135,7 +135,12 @@ def syslinux_default(usb_disk):
:version: Default version is 4. Change it if you wish. But necessary files needs to be copied accordingly
:return: Bootable USB disk :-)
"""
usb_details = usb.details(usb_disk)
try:
usb_details = usb.details(config.usb_disk)
except usb.PartitionNotMounted as e:
log(str(e))
return False
usb_fs = usb_details['file_system']
usb_mount = usb_details['mount_point']
mbr_bin = get_mbr_bin_path(usb_disk)
@ -276,7 +281,12 @@ def syslinux_distro_dir(usb_disk, iso_link, distro):
:param iso_link: Path to ISO file
:return:
"""
usb_details = usb.details(usb_disk)
try:
usb_details = usb.details(config.usb_disk)
except usb.PartitionNotMounted as e:
log(str(e))
return
usb_fs = usb_details['file_system']
usb_mount = usb_details['mount_point']
isolinux_bin_dir(iso_link)

@ -21,7 +21,12 @@ def install_distro_list():
List all distro names installed by previous install
:return: List of distro names as list
"""
usb_details = config.usb_details
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
config.usb_mount = usb_details['mount_point']
sys_cfg_file = os.path.join(config.usb_mount, "multibootusb", "syslinux.cfg")
@ -54,7 +59,12 @@ def delete_frm_file_list(iso_file_list, uninstall_distro_dir_name):
:param config.uninstall_distro_dir_name: Directory where the distro is installed
:return:
"""
usb_details = config.usb_details
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
usb_mount = usb_details['mount_point']
if iso_file_list is not None:
for f in iso_file_list:
@ -100,7 +110,11 @@ def do_uninstall_distro(target_distro, uninstall_distro_dir_name):
:param uninstall_distro_dir_name: Directory where the distro is installed
:return:
"""
usb_details = config.usb_details
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
usb_mount = usb_details['mount_point']
if platform.system() == 'Linux':
@ -218,7 +232,12 @@ def uninstall_progress():
:return:
"""
from . import progressbar
usb_details = config.usb_details
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
usb_mount = usb_details['mount_point']
uninstall_distro_dir_name = config.uninstall_distro_dir_name \

@ -126,7 +126,12 @@ def update_distro_cfg_files(iso_link, usb_disk, distro, persistence=0):
Main function to modify/update distro specific strings on distro config files.
:return:
"""
usb_details = config.usb_details
try:
usb_details = details(config.usb_disk)
except PartitionNotMounted as e:
log(str(e))
return
usb_mount = usb_details['mount_point']
usb_uuid = usb_details['uuid']
usb_label = usb_details['label']

@ -30,6 +30,12 @@ if platform.system() == 'Windows':
import win32com.client
class PartitionNotMounted(Exception):
def __init__(self, partition):
self.message = 'Partition is not mounted: {}'.format(partition)
def is_block(usb_disk):
"""
Function to detect if the USB is block device
@ -281,7 +287,7 @@ def details_udev(usb_disk_part):
fdisk_cmd = 'LANG=C fdisk -l ' + usb_disk_part + \
' | grep "^Disk /" | sed -re "s/.*\s([0-9]+)\sbytes.*/\\1/"'
size_total = subprocess.check_output(fdisk_cmd, shell=True).strip()
size_used = ""
size_used = 0
size_free = 0
mount_point = ""
@ -344,9 +350,7 @@ def details_udisks2(usb_disk_part):
size_total, size_used, size_free = \
shutil.disk_usage(mount_point)[:3]
else:
size_total = str('No_Mount')
size_used = str('No_Mount')
size_free = 0
raise PartitionNotMounted(usb_disk_part)
return {'uuid': uuid, 'file_system': file_system, 'label': label, 'mount_point': mount_point,
'size_total': size_total, 'size_used': size_used, 'size_free': size_free,

Loading…
Cancel
Save