vagrant-listen-server 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6bc4b1dc74d14a2265d218cfd30d1a65a6d21c3
4
- data.tar.gz: 5c2910bca19794cb808df5ba3ec21be5ced9efad
3
+ metadata.gz: 54a4ce449ded50fcc6e74eee8185c87f505f52c6
4
+ data.tar.gz: ccdb1dc74ba61cf0b73020934b795988a936ced6
5
5
  SHA512:
6
- metadata.gz: 66746b24cd27bf4d4a003f6dab284e777266c0714738e9ae3a33ec17ff28cbe8f6c97610b36bdcdca517c52aa8b9cbae0af905e249f62ea8bc219cb9a6988740
7
- data.tar.gz: 54fb1ba72bba130fce0c253e15e47a78f903d3bc38b0fbde36a92f5e1b231c7e02b8fae7c792bc4f6e625d9ebdd8e8f082a1702f0a6056b1cfba5122b4f4921e
6
+ metadata.gz: d34b120570d800c0ef54f7ff55dafcf55321e83ab16ab991a36d6e8b0e54aeb7f6724f0e7dd6109684d065055ccb8ac8958fa3961d92395005f0fe72e13bd34d
7
+ data.tar.gz: d82c5bee25552a3c5f5d7285a035966c47bc41bbd3a02d767f35735842e1f18545369e7f78a7bf3df9bfead96d990ab3105e98f075d21d96652692380c25f0da
data/Gemfile CHANGED
@@ -6,7 +6,4 @@ end
6
6
 
7
7
  group :plugins do
8
8
  gem 'vagrant-listen-server', path: '.'
9
- gem 'listen'
10
- gem 'celluloid'
11
- gem 'celluloid-io'
12
9
  end
data/README.md CHANGED
@@ -64,7 +64,7 @@ Then in your Vagrantfile:
64
64
 
65
65
  Filesystem is shared using rsync-auto protocol instead of vboxsf
66
66
 
67
- * [rsync-mirror](https://github.com/ingenerator/vagrant-mirror/)
67
+ * [vagrant-mirror](https://github.com/ingenerator/vagrant-mirror/)
68
68
 
69
69
  Hasn't been updated to work with vagrant's new plugin system.
70
70
 
@@ -90,3 +90,19 @@ Listen maybe is a bit of a resource hog:
90
90
 
91
91
  There might be some better, native implementations that make this faster. e.g.
92
92
  * https://fsnotify.org/
93
+
94
+ Gemspecs don't allow platform specific requirements, so we have to include all
95
+ the gems for filesystem events. It looks like the only great solution to this
96
+ is to switch to a separate gem for each platform...
97
+ * http://stackoverflow.com/questions/8940271/build-a-ruby-gem-and-conditionally-specify-dependencies
98
+
99
+ You can automate the install pretty easily though:
100
+ * http://stackoverflow.com/questions/4596606/rubygems-how-do-i-add-platform-specific-dependency/10249133#10249133
101
+ * http://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using
102
+
103
+ Fork in a way that will work with windows. Childprocess gem is included with
104
+ vagrant by default - see if it will fit the bill.
105
+ * https://github.com/jarib/childprocess
106
+
107
+ There's also a "subprocess" module under vagrant util
108
+ * https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/util/subprocess.rb
@@ -1,6 +1,18 @@
1
1
  require 'celluloid'
2
2
  require 'listen'
3
3
 
4
+ # No ActiveSupport in vagrant
5
+ def array_wrap object
6
+ if object.nil?
7
+ []
8
+ elsif object.respond_to?(:to_ary)
9
+ object.to_ary || [object]
10
+ else
11
+ [object]
12
+ end
13
+ end
14
+
15
+
4
16
  module VagrantPlugins
5
17
  module ListenServer
6
18
  module Action
@@ -15,7 +27,7 @@ module VagrantPlugins
15
27
  @machine = env[:machine]
16
28
 
17
29
  config = @machine.config.listen_server
18
- folders = config.folders
30
+ folders = array_wrap config.folders
19
31
  host = "#{config.ip}:#{config.port}"
20
32
 
21
33
  @ui.info "Starting listen server - #{host}"
@@ -28,7 +40,7 @@ module VagrantPlugins
28
40
  @ui.info 'Warning - listen server already running'
29
41
  return @app.call(env)
30
42
  rescue Errno::ESRCH
31
- @ui.info 'Warning - stale PID file'
43
+ @ui.info "Warning - stale PID: #{pid}"
32
44
  end
33
45
  end
34
46
 
@@ -40,7 +52,7 @@ module VagrantPlugins
40
52
  # machine to test it out on...
41
53
  pid = fork do
42
54
  $0 = "vagrant-listen-server - #{@machine.name}"
43
- listener = Listen.to folders, forward_to: host do |modified, added, removed|
55
+ listener = Listen.to *folders, forward_to: host do |modified, added, removed|
44
56
  File.open('/tmp/listen.txt', 'a+') do |f|
45
57
  f.puts 'listen fired', modified, added, removed
46
58
  end
@@ -52,7 +64,16 @@ module VagrantPlugins
52
64
  @ui.info "Can't start server - Port in use"
53
65
  exit
54
66
  end
55
- sleep
67
+
68
+ # Uhh... this needs work. Vagrant steals the interrupt from us and
69
+ # there's no way to get it back
70
+ # * https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/action/runner.rb#L49
71
+ # Is there a way to register more callbacks to the busy block?
72
+ # * https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/util/busy.rb
73
+ while not env[:interrupted]
74
+ sleep 1
75
+ end
76
+ @ui.info "Listen sleep finished"
56
77
  end
57
78
 
58
79
  Process.detach pid
@@ -1,5 +1,14 @@
1
1
  require_relative 'action'
2
2
 
3
+ require 'rbconfig'
4
+ os = RbConfig::CONFIG['target_os']
5
+
6
+ require 'rb-fsevent' if os =~ /darwin/i
7
+ require 'rb-kqueue' if os =~ /bsd|dragonfly/i
8
+ require 'rb-inotify' if os =~ /linux/i
9
+ require 'wdm' if Gem.win_platform?
10
+
11
+
3
12
  module VagrantPlugins
4
13
  module ListenServer
5
14
  class Plugin < Vagrant.plugin('2')
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module ListenServer
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
  end
5
5
  end
@@ -17,8 +17,14 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_runtime_dependency 'celluloid', '~> 0.16'
21
- spec.add_runtime_dependency 'celluloid-io', '~> 0.16', '>= 0.16.2'
20
+ spec.add_dependency 'celluloid', '~> 0.16'
21
+ spec.add_dependency 'celluloid-io', '~> 0.16', '>= 0.16.2'
22
+
23
+ spec.add_dependency 'rb-inotify', '~> 0.9', '>= 0.9.5'
24
+ spec.add_dependency 'rb-fsevent', '~> 0.9', '>= 0.9.4'
25
+ spec.add_dependency 'rb-kqueue', '~> 0.2', '>= 0.2.3'
26
+ # wdm is already included in the vagrant gem spec.
27
+ # spec.add_runtime_dependency 'wdm', '~> 0.10', '>= 0.10.0'
22
28
 
23
29
  spec.add_development_dependency 'bundler', '~> 1.7'
24
30
  spec.add_development_dependency 'rake', '~> 10.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-listen-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kelso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-07 00:00:00.000000000 Z
11
+ date: 2015-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid
@@ -44,6 +44,66 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.16.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: rb-inotify
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.9'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.5
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.9'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.9.5
67
+ - !ruby/object:Gem::Dependency
68
+ name: rb-fsevent
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.9'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.9.4
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.9'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 0.9.4
87
+ - !ruby/object:Gem::Dependency
88
+ name: rb-kqueue
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '0.2'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.2.3
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.2'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.2.3
47
107
  - !ruby/object:Gem::Dependency
48
108
  name: bundler
49
109
  requirement: !ruby/object:Gem::Requirement