2
0
mirror of https://github.com/mbusb/multibootusb synced 2024-11-07 03:20:23 +00:00
multibootusb/scripts/mbusb_cli.py

86 lines
3.1 KiB
Python
Raw Normal View History

2016-11-06 11:18:53 +00:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Name: mbusb_cli.py
# Purpose: Module to handle command line options of multibootusb
# Authors: Sundar
# Licence: This file is a part of multibootusb package. You can redistribute it or modify
# under the terms of GNU General Public License, v.2 or above
import os
import re
import shutil
from . import usb
from . import gen
from .iso import *
from .uninstall_distro import *
from .distro import *
from .syslinux import *
from .install import *
def read_input_uninstall():
response = False
try:
response = int(input("Please enter the number against the distro you need to uninstall: "))
except ValueError:
2016-12-26 17:53:21 +00:00
log('\nPlease provide valid integer from the above list.\n')
2016-11-06 11:18:53 +00:00
return response
def cli_install_distro():
'''
if platform.system() == 'Linux':
if os.getuid() != 0:
exit("You need to have root privileges to run this script.\nPlease try again using 'sudo'. Exiting.")
elif platform.system() == 'Windows':
if admin.isUserAdmin():
admin.elevate()
'''
2016-12-26 17:53:21 +00:00
log('Starting multibootusb from Command line...')
2016-11-06 11:18:53 +00:00
if usb.is_block(config.usb_disk) is False:
2016-12-26 17:53:21 +00:00
log(config.usb_disk, 'is not a valid device partition...')
2016-11-06 11:18:53 +00:00
exit(1)
2017-04-13 07:39:25 +00:00
elif integrity(config.image_path) is not True:
log(config.image_path, ' failed to pass integrity check...')
2016-11-06 11:18:53 +00:00
exit(1)
2017-04-13 07:39:25 +00:00
elif size_not_enough(config.image_path, config.usb_disk) is True:
2016-12-26 17:53:21 +00:00
log(config.usb_disk, 'does not have enough space...')
2016-11-06 11:18:53 +00:00
else:
prepare_mbusb_host_dir()
2017-04-13 07:39:25 +00:00
extract_cfg_file(config.image_path)
_distro = distro(iso_cfg_ext_dir(), config.image_path)
2016-12-26 17:53:21 +00:00
log('Detected distro type is', _distro)
2016-11-06 11:18:53 +00:00
if _distro is not None:
2017-04-13 07:39:25 +00:00
log('\nSelected ISO is :', quote(iso_name(config.image_path)))
2016-12-26 17:53:21 +00:00
log('Selected target device is:', quote(config.usb_disk), '\n')
log('Please confirm the option.')
log('Y/y/Yes/yes/YES or N/n/No/no/NO')
2016-11-06 11:18:53 +00:00
if read_input_yes() is True:
config.distro = _distro
copy_mbusb_dir_usb(config.usb_disk)
install_progress()
2017-04-13 07:39:25 +00:00
syslinux_distro_dir(config.usb_disk, config.image_path, _distro)
2016-11-06 11:18:53 +00:00
syslinux_default(config.usb_disk)
2017-04-13 07:39:25 +00:00
update_distro_cfg_files(config.image_path, config.usb_disk, _distro)
2016-11-06 11:18:53 +00:00
else:
2017-04-13 07:39:25 +00:00
log('Sorry', iso_name(config.image_path), 'is not supported at the moment\n'
2016-11-06 11:18:53 +00:00
'Please report tissue at https://github.com/mbusb/multibootusb/issues')
def cli_uninstall_distro():
distro_list = install_distro_list()
if distro_list is not None:
for index, _distro_dir in enumerate(distro_list):
2016-12-26 17:53:21 +00:00
log(index, '--->>', _distro_dir)
2016-11-06 11:18:53 +00:00
user_input = read_input_uninstall()
if user_input is not False:
for index, _distro_dir in enumerate(distro_list):
if index == user_input:
config.uninstall_distro_dir_name = _distro_dir
unin_distro()
else:
2016-12-26 17:53:21 +00:00
log('No distro installed on', config.usb_disk)