#!/usr/bin/env ruby require 'hackmac' include Hackmac include Utils $config = Hackmac::Config.load dev = ARGV.shift or fail "need usb device" dev = File.basename(dev) mountpoint = $config.usb.mp mountpoint_efi = '/Volumes/%s' % $config.devices.usb.name unless File.exist?($config.usb.os) fail "Cannot find #{$config.usb.os.inspect}!" end cim = "#{$config.usb.os}/Contents/Resources/createinstallmedia" unless File.exist?(cim) fail "Cannot find #{cim.inspect}!" end ask("Really erase #{dev.inspect} and install #{$config.usb.os.inspect}? (y/n) ") or exit x %{diskutil partitionDisk #{dev.inspect} GPT JHFS+ "USB" 100%} x %{sudo #{cim.inspect} --volume #{mountpoint.inspect} --nointeraction} x %{sudo mkdir -p #{mountpoint_efi.inspect}} x %{sudo mount -t msdos #{('/dev/' + dev + 's1').inspect} #{mountpoint_efi.inspect}} cd mountpoint_efi do x %{sudo chown $USER .} x %{git init} x %{git remote add origin #{$config.efi.source.inspect}} x %{git pull origin master} x %{git branch --set-upstream-to=origin/master} end