Skip to content

Instantly share code, notes, and snippets.

@jtarang
Created November 8, 2018 07:02
Show Gist options
  • Save jtarang/f3a8fbb7d4fd7a3114d63012c8cf5d97 to your computer and use it in GitHub Desktop.
Save jtarang/f3a8fbb7d4fd7a3114d63012c8cf5d97 to your computer and use it in GitHub Desktop.
Creates a mac installer usb
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