Class: VagrantDNS::Command
- Inherits:
-
Vagrant::Command::Base
- Object
- Vagrant::Command::Base
- VagrantDNS::Command
- Defined in:
- lib/vagrant-dns/command.rb
Instance Method Summary collapse
-
#execute ⇒ Object
Runs the vbguest installer on the VMs that are represented by this environment.
Instance Method Details
#execute ⇒ Object
Runs the vbguest installer on the VMs that are represented by this environment.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/vagrant-dns/command.rb', line 11 def execute = {} opts = OptionParser.new do |opts| opts. = "Usage: vagrant dns [vm-name] [-i|--install] [-u|--uninstall] [-s|--start] [-S|--stop] [-r|--restart] [-o|--ontop]" opts.separator "" opts.on("--install", "-i", "Install DNS config for machine domain") do [:install] = true end opts.on("--uninstall", "-u", "Uninstall DNS config for machine domain") do [:uninstall] = true end opts.on("--start", "-s", "Start the DNS service") do [:start] = true end opts.on("--stop", "-s", "Stop the DNS service") do [:stop] = true end opts.on("--restart", "-r", "Restart the DNS service") do [:restart] = true end opts.on("--ontop", "-o", "Start the DNS service on top. Debugging only, this blocks Vagrant!") do [:ontop] = true end end argv = (opts) return if !argv = [] vms = argv unless argv.empty? tmp_path = File.join(@env.tmp_path, "dns") with_target_vms(vms) { |vm| VagrantDNS::Configurator.new(vm, tmp_path).run! } service = VagrantDNS::Service.new(tmp_path, ) if [:start] service.start! elsif [:stop] service.stop! elsif [:restart] service.restart! end if [:install] || [:uninstall] if RbConfig::CONFIG["host_os"].match /darwin/ installer = VagrantDNS::Installers::Mac.new(tmp_path) if [:install] installer.install! elsif [:uninstall] installer.uninstall! end else raise 'installing and uninstalling is only supported on Mac OS X at the moment.' end end end |