diff --git a/lib/mrsk/cli/accessory.rb b/lib/mrsk/cli/accessory.rb index 6d91f1f3..31104cc2 100644 --- a/lib/mrsk/cli/accessory.rb +++ b/lib/mrsk/cli/accessory.rb @@ -1,12 +1,16 @@ require "mrsk/cli/base" class Mrsk::Cli::Accessory < Mrsk::Cli::Base - desc "boot [NAME]", "Boot accessory service on host" + desc "boot [NAME]", "Boot accessory service on host (use NAME=all to boot all accessories)" def boot(name) - invoke :upload, [ name ] + if name == "all" + MRSK.accessory_names.each { |accessory_name| boot(accessory_name) } + else + upload(name) - accessory = MRSK.accessory(name) - on(accessory.host) { execute *accessory.run } + accessory = MRSK.accessory(name) + on(accessory.host) { execute *accessory.run } + end end desc "upload [NAME]", "Upload accessory files to host" @@ -77,12 +81,16 @@ class Mrsk::Cli::Accessory < Mrsk::Cli::Base end end - desc "remove [NAME]", "Remove accessory container and image from host" + desc "remove [NAME]", "Remove accessory container and image from host (use NAME=all to boot all accessories)" def remove(name) - invoke :stop, [ name ] - invoke :remove_container, [ name ] - invoke :remove_image, [ name ] - invoke :remove_files, [ name ] + if name == "all" + MRSK.accessory_names.each { |accessory_name| remove(accessory_name) } + else + stop(name) + remove_container(name) + remove_image(name) + remove_files(name) + end end desc "remove_container [NAME]", "Remove accessory container from host" diff --git a/lib/mrsk/commander.rb b/lib/mrsk/commander.rb index a6b52ea4..9baf68fe 100644 --- a/lib/mrsk/commander.rb +++ b/lib/mrsk/commander.rb @@ -48,6 +48,10 @@ class Mrsk::Commander specific_hosts || config.accessories.collect(&:host) end + def accessory_names + config.accessories.collect(&:name) + end + def app @app ||= Mrsk::Commands::App.new(config)