vagrant-screenshot 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,3 @@
1
- require "vagrant-screenshot/errors"
2
1
  require "vagrant-screenshot/screenshot_command"
3
2
 
4
3
  Vagrant.commands.register(:screenshot) { Vagrant::Command::ScreenshotCommand }
@@ -3,14 +3,10 @@ module Vagrant
3
3
  module Command
4
4
  class ScreenshotCommand < Base
5
5
 
6
- VBOX_MANAGE = 'VBoxManage'
7
-
8
6
  def execute
9
7
  options = {}
10
8
  filenames = []
11
9
 
12
- raise Errors::VBoxManageCommandNotFound if vbox_manage_command.empty?
13
-
14
10
  opts = build_screenshot_options options
15
11
  argv = parse_options(opts)
16
12
  return if !argv
@@ -18,11 +14,11 @@ module Vagrant
18
14
  vm_name = argv[0]
19
15
  with_target_vms(vm_name) do |vm|
20
16
  if vm.state != :running
21
- notify "Skiping #{vm.name}. VM not running"
17
+ notify :warn, "Skiping #{vm.name}. VM not running"
22
18
  else
23
- notify "Taking screenshot for #{vm.name}"
19
+ notify :info, "Taking screenshot for #{vm.name}"
24
20
  filename = create_output_filename vm.name
25
- take_screenshot vm.uuid, filename
21
+ take_screenshot vm, filename
26
22
  filenames << filename
27
23
  open_generated_files(filenames) if options[:open]
28
24
  end
@@ -32,10 +28,6 @@ module Vagrant
32
28
 
33
29
  protected
34
30
 
35
- def vbox_manage_command
36
- %x[which VBoxManage].chomp
37
- end
38
-
39
31
  def open_command
40
32
  # Currently just Mac's 'open' command is supported, if it's
41
33
  # not found the -o option is not provided
@@ -61,17 +53,17 @@ module Vagrant
61
53
  "screenshot-#{vm_name}.png"
62
54
  end
63
55
 
64
- def take_screenshot(vm_uuid, filename)
65
- %x[#{VBOX_MANAGE} controlvm #{vm_uuid} screenshotpng #{filename}]
66
- notify "Screenshot saved on #{filename}"
56
+ def take_screenshot(vm, filename)
57
+ vm.driver.execute_command ["controlvm", vm.uuid, "screenshotpng", filename]
58
+ notify :success, "Screenshot saved on #{filename}"
67
59
  end
68
60
 
69
61
  def open_generated_files(filenames)
70
- %x[open #{filenames.join(' ')}]
62
+ %x[#{open_command} #{filenames.join(' ')}]
71
63
  end
72
64
 
73
- def notify(msg)
74
- puts msg
65
+ def notify(level, msg)
66
+ @env.ui.send(level, msg)
75
67
  end
76
68
 
77
69
  end
@@ -0,0 +1,4 @@
1
+
2
+ # This file is automatically loaded by Vagrant.
3
+
4
+ require 'vagrant-screenshot'
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "vagrant-screenshot"
6
- s.version = "0.1"
6
+ s.version = "0.2"
7
7
  s.authors = ["Igor Sobreira"]
8
8
  s.email = ["igor@igorsobreira.com"]
9
9
  s.homepage = "https://github.com/igorsobreira/vagrant-screenshot"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-screenshot
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-13 00:00:00.000000000 Z
12
+ date: 2012-03-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Vagrant plugin to take screenshots of VMs
15
15
  email:
@@ -23,8 +23,8 @@ files:
23
23
  - README.md
24
24
  - Rakefile
25
25
  - lib/vagrant-screenshot.rb
26
- - lib/vagrant-screenshot/errors.rb
27
26
  - lib/vagrant-screenshot/screenshot_command.rb
27
+ - lib/vagrant_init.rb
28
28
  - vagrant-screenshot.gemspec
29
29
  homepage: https://github.com/igorsobreira/vagrant-screenshot
30
30
  licenses: []
@@ -1,14 +0,0 @@
1
- module Vagrant
2
-
3
- module Errors
4
-
5
- class VBoxManageCommandNotFound < VagrantError
6
- def initialize
7
- message = "VBoxManage command not found"
8
- super
9
- end
10
- end
11
-
12
- end
13
-
14
- end