Created
November 8, 2018 07:02
-
-
Save jtarang/f3a8fbb7d4fd7a3114d63012c8cf5d97 to your computer and use it in GitHub Desktop.
Creates a mac installer usb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sys import argv | |
from glob import glob | |
from os import system | |
class usbCreator: | |
def __init__(self): | |
self.volumes = self.getVolumes() | |
self.installers = self.getInstallers() | |
self.selctedInstaller = None | |
self.selectedVol = None | |
def getVolumes(self): | |
volumes = glob('/Volumes/*') | |
return volumes | |
def getInstallers(self): | |
installers = glob('/Applications/Install*macOS*.app') | |
return installers | |
# TODO: join both `select` funcs to a super select. | |
def selectInstaller(self): | |
if len(self.installers) > 1: | |
print('\nInstallers Available:\n') | |
for i in range(len(self.installers)): | |
print(f'\t{i}. {self.installers[i]}') | |
self.selectedInstaller = self.installers[int(input( | |
'\nWhich installer do you want to create the USB for? '))] | |
print(f'\nUsing: {self.selectedInstaller} to create the USB.') | |
elif len(self.installers) == 1: | |
self.selectedInstaller = self.installers[0] | |
print(f'\nUsing: {self.selectedInstaller} to create the USB.') | |
def selectVolume(self): | |
print('\nVolumes Available:\n') | |
for i in range(len(self.volumes)): | |
print(f'\t{i}. {self.volumes[i]}') | |
self.selectedVol = self.volumes[int(input( | |
'\nWhich volume is the desired location for the installer? '))] | |
print(f'\nGot it. Creating the installer on volume: {self.selectedVol}\n') | |
def createInstaller(self): | |
self.createCMD = f'sudo "{self.selectedInstaller}/Contents/Resources/createinstallmedia" \ | |
--volume "{self.selectedVol}" --applicationpath "{self.selectedInstaller}" --nointeraction' | |
system(self.createCMD) | |
def main(): | |
usb = usbCreator() | |
usb.selectInstaller() | |
usb.selectVolume() | |
usb.createInstaller() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment