Created
May 12, 2013 22:48
-
-
Save mikesmullin/5565246 to your computer and use it in GitHub Desktop.
VirtualBox VBoxManage CLI helper
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
#!/usr/bin/env ruby | |
# vim: set ft=ruby : | |
verb = ARGV[0] | |
who = ARGV[1..-1] | |
workers = %w{Zero Nasir Harsh Nino Victor Andy Abbas Atef} | |
group = who.first.downcase == 'all'? workers : who | |
group.each do |worker| | |
next if %w{Zero}.include? worker # skip | |
worker_no = workers.index worker | |
puts "#{worker} is worker no. #{worker_no}. will #{verb}..." | |
vm_name = case worker.downcase | |
when 'nasir' | |
"Worker 1 Nasir Hussain" | |
else | |
"Worker #{worker_no}" | |
end | |
case verb.downcase.to_sym | |
when :start | |
# TODO: loop in here? interactive console? | |
cmd = "vboxheadless --startvm '#{vm_name}' --vnc --vncport 666#{worker_no} --vncpass #{workers[worker_no]}" | |
when :stop | |
cmd = "vboxmanage controlvm '#{vm_name}' savestate" | |
when :resize | |
resolution = case worker | |
when 'Abbas' | |
'1904 1000' | |
when 'Victor' | |
'1600 900' | |
when 'Andy' | |
'1200 980' # Andy | |
else | |
'1343 690' | |
end | |
cmd = "vboxmanage controlvm '#{vm_name}' setvideomodehint #{resolution} 24" | |
when :join | |
cmd = "echo #{worker} | vncviewer -autopass localhost:666#{worker_no}" | |
when :restart | |
# coming soon; force abort? or soft reboot? | |
when :screenshot | |
cmd = "vboxmanage controlvm '#{vm_name}' screenshotpng #{Time.now.strftime('%Y%m%d')}-#{worker.downcase}-#{Time.now.strftime('%H%M%S')}.png" | |
end | |
if cmd | |
puts cmd | |
system cmd | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment