#!/bin/env python3 # # pylint: disable=no-name-in-module,wildcard-import # vim: sts=2 sw=2 ts=2 """Wizard Kit: UFD build tool""" import os import sys # Init sys.path.append(os.path.dirname(os.path.realpath(__file__))) from docopt import docopt from functions.common import * from functions.ufd import * from settings.ufd import * init_global_vars(silent=True) # Main section if __name__ == '__main__': # pylint: disable=invalid-name # Set log try: global_vars['LogDir'] = '{}/Logs'.format( get_user_home(get_user_name())) set_log_file('Build UFD ({Date-Time}).log'.format(**global_vars)) except: # pylint: disable=bare-except major_exception() # Header print_success(KIT_NAME_FULL) print_standard('UFD Build Tool') print_standard(' ') # Check if running as root if not running_as_root(): print_error('ERROR: This script is meant to be run as root.') abort(False) # Docopt try: args = docopt(DOCSTRING) except SystemExit as sys_exit: # Catch docopt exits exit_script(sys_exit.code) except: # pylint: disable=bare-except major_exception() try: # Verify selections ufd_dev = verify_ufd(args['--ufd-device']) sources = verify_sources(args, UFD_SOURCES) show_selections(args, sources, ufd_dev, UFD_SOURCES) if not args['--force']: confirm_selections(args) # Format and partition device if not args['--update']: prep_device(ufd_dev, UFD_LABEL, use_mbr=args['--use-mbr']) # Mount UFD try_and_print( message='Mounting UFD...', function=mount, mount_source=ufd_dev, mount_point='/mnt/UFD', ) # Copy sources for s_label, s_path in sources.items(): try_and_print( message='Copying {} files...'.format(s_label), function=copy_source, source=s_path, items=ITEMS[s_label], overwrite=True, ) # Update boot entries try_and_print( message='Enabling boot entries...', function=enable_boot_entries, boot_entries=BOOT_ENTRIES, boot_files=BOOT_FILES, ) # Install syslinux # Hide items # Done if not args['--force']: print_standard('\nDone.') pause('Press Enter to exit...') exit_script() except SystemExit as sys_exit: exit_script(sys_exit.code) except: # pylint: disable=bare-except major_exception()