diff --git a/.bin/Scripts/build-ufd b/.bin/Scripts/build-ufd new file mode 100755 index 00000000..d73b306c --- /dev/null +++ b/.bin/Scripts/build-ufd @@ -0,0 +1,89 @@ +#!/bin/env python3 +# +## Wizard Kit: UFD build tool + +# Init +import os +import sys + +sys.path.append(os.path.dirname(os.path.realpath(__file__))) + +from docopt import docopt +from functions.common import * + +set_log_file('Build UFD ({Date-Time}).log'.format(**global_vars['Env'])) + + +# STATIC VARIABLES +DOCSTRING = '''Build UFD. + +Usage: + build-ufd [options] --ufd-device PATH --linux-iso PATH + [--linux-minimal-iso PATH] + [--main-kit PATH] + [--winpe-iso PATH] + [--extra-dir PATH] + build-ufd (-h | --help) + +Options: + -e PATH, --extra-dir PATH + -k PATH, --main-kit PATH + -l PATH, --linux-iso PATH + -m PATH, --linux-minimal-iso PATH + -u PATH, --ufd-device PATH + -w PATH, --winpe-iso PATH + + -d --debug Enable debug mode + -h --help Show this page + -v --verbose Enable verbose mode + -M --use-mbr Use real MBR instead of GPT w/ Protective MBR + -F --force Bypass all confirmation messages. USE WITH EXTREME CAUTION! + -U --update Don't format device, just update +''' +ISO_LABEL = '{}_LINUX'.format(KIT_NAME_SHORT) +UFD_LABEL = '{}_UFD'.format(KIT_NAME_SHORT) + + +# Functions +def get_full_path(item): + """Get full path to item, returns str.""" + #TODO + pass + + +def is_block_device(item): + """Verify item is a block device, returns bool.""" + #TODO + pass + + +def is_valid_main_kit(path): + """Verify path contains the main kit, returns bool.""" + + +# Main section +if __name__ == '__main__': + args = docopt(DOCSTRING) + + # Verify selections + + # Show selections + + # Double-check if formating device + + # Format and partition device + + # Mount sources + + # Copy sources + + # Update boot entries + + # Install syslinux + + # Hide items + + # Unmount sources + + +# vim: sts=2 sw=2 ts=2 diff --git a/.bin/Scripts/functions/common.py b/.bin/Scripts/functions/common.py index 502c985b..bbc2529c 100644 --- a/.bin/Scripts/functions/common.py +++ b/.bin/Scripts/functions/common.py @@ -879,25 +879,19 @@ def make_tmp_dirs(): def set_common_vars(): """Set common variables.""" - global_vars['Date'] = time.strftime("%Y-%m-%d") - global_vars['Date-Time'] = time.strftime("%Y-%m-%d_%H%M_%z") - global_vars['Env'] = os.environ.copy() + global_vars['Date'] = time.strftime("%Y-%m-%d") + global_vars['Date-Time'] = time.strftime("%Y-%m-%d_%H%M_%z") + global_vars['Env'] = os.environ.copy() global_vars['ArchivePassword'] = ARCHIVE_PASSWORD - global_vars['BinDir'] = r'{BaseDir}\.bin'.format( - **global_vars) - global_vars['CBinDir'] = r'{BaseDir}\.cbin'.format( - **global_vars) - global_vars['ClientDir'] = r'{SYSTEMDRIVE}\{prefix}'.format( - prefix=KIT_NAME_SHORT, **global_vars['Env']) - global_vars['BackupDir'] = r'{ClientDir}\Backups'.format( - **global_vars) - global_vars['LogDir'] = r'{ClientDir}\Logs\{Date}'.format( - **global_vars) - global_vars['QuarantineDir'] = r'{ClientDir}\Quarantine'.format( - **global_vars) - global_vars['TmpDir'] = r'{BinDir}\tmp'.format( - **global_vars) + global_vars['BinDir'] = r'{BaseDir}\.bin'.format(**global_vars) + global_vars['CBinDir'] = r'{BaseDir}\.cbin'.format(**global_vars) + global_vars['ClientDir'] = r'{SYSTEMDRIVE}\{prefix}'.format( + prefix=KIT_NAME_SHORT, **global_vars['Env']) + global_vars['BackupDir'] = r'{ClientDir}\Backups'.format(**global_vars) + global_vars['LogDir'] = r'{ClientDir}\Logs\{Date}'.format(**global_vars) + global_vars['QuarantineDir'] = r'{ClientDir}\Quarantine'.format(**global_vars) + global_vars['TmpDir'] = r'{BinDir}\tmp'.format(**global_vars) def set_linux_vars(): @@ -905,12 +899,12 @@ def set_linux_vars(): These assume we're running under a WK-Linux build.""" result = run_program(['mktemp', '-d']) - global_vars['TmpDir'] = result.stdout.decode().strip() - global_vars['Date'] = time.strftime("%Y-%m-%d") - global_vars['Date-Time'] = time.strftime("%Y-%m-%d_%H%M_%z") - global_vars['Env'] = os.environ.copy() - global_vars['BinDir'] = '/usr/local/bin' - global_vars['LogDir'] = global_vars['TmpDir'] + global_vars['TmpDir'] = result.stdout.decode().strip() + global_vars['Date'] = time.strftime("%Y-%m-%d") + global_vars['Date-Time'] = time.strftime("%Y-%m-%d_%H%M_%z") + global_vars['Env'] = os.environ.copy() + global_vars['BinDir'] = '/usr/local/bin' + global_vars['LogDir'] = '{}/Logs',format(global_vars['Env']['HOME']) global_vars['Tools'] = { 'wimlib-imagex': 'wimlib-imagex', 'SevenZip': '7z', @@ -919,10 +913,13 @@ def set_linux_vars(): def set_log_file(log_name): """Sets global var LogFile and creates path as needed.""" - folder_path = '{}{}{}'.format( - global_vars['LogDir'], - os.sep, - KIT_NAME_FULL) + if psutil.LINUX: + folder_path = global_vars['LogDir'] + else: + folder_path = '{}{}{}'.format( + global_vars['LogDir'], + os.sep, + KIT_NAME_FULL) log_file = '{}{}{}'.format( folder_path, os.sep, diff --git a/.linux_items/packages/live_add b/.linux_items/packages/live_add index 668c10c0..57f77bc1 100644 --- a/.linux_items/packages/live_add +++ b/.linux_items/packages/live_add @@ -31,6 +31,7 @@ networkmanager p7zip progsreiserfs python +python-docopt python-psutil python-requests reiserfsprogs