bmhatfield-vagrant 1.0.9 → 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTM0YWE3YTJjYjA2MzljNmJhNTY0N2M2ZDAyMGNlZjExYTlhNjIwZg==
5
+ data.tar.gz: !binary |-
6
+ YWI4YjIxNDMzYjNkOGJmYWY0NDMzYWVjMTczM2VjY2MxMTViZDIyMA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NTBkYzhhNWMwM2ZjNTZkMzA0YTM1NzgxNWUwOTdiZjRhZTA4ZjA5MzU0ZDlm
10
+ YmY5YzAzZDJkMTM4NjNlMmE3NjQ2NGExOTRlMGE3NjVkY2MyY2Q0Mjk5ZjM1
11
+ ZGMzYmRkMWZlNGQ2NGExYmFiMjY5Zjc5YmRmYzIwZmM0YzE1MmU=
12
+ data.tar.gz: !binary |-
13
+ NDU1MWM5M2ZiZTg0Yzk4MTlmMDg3NDk5NWU4YTdlNzQyZDQzOTIzMDQ2OWY1
14
+ ZmI4NDYxY2MwMGNiMmQxOWJiZTQ5NzVkY2UwNmZkMmY0Y2RkMDExN2I3M2Yw
15
+ MjUwOGQ3YTE1ZjExOGUyMzk1ZTMwNmNmN2ExYzk1OGJlZDA2NWI=
@@ -27,6 +27,42 @@ module Vagrant
27
27
  @nfs_exports_template = "nfs/exports"
28
28
  end
29
29
 
30
+ # Create the sudoers.d directory, update /etc/sudoers, and create /etc/sudoers.d/vagrant
31
+ # https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/sudoers.5.html
32
+ def create_vagrant_sudoers_policy
33
+ sudoersd_dir = '/etc/sudoers.d'
34
+
35
+ # This block should only run the first time vagrant is run on a new host
36
+ unless File.exists? "#{sudoersd_dir}/vagrant"
37
+ sudoers_file = '/etc/sudoers'
38
+ sudoers_include = '\n#includedir /etc/sudoers.d'
39
+ vagrant_sudoersd_filename = "#{sudoersd_dir}/vagrant"
40
+ # We cannot use heredoc since echo doesn't handle the multiline input properly
41
+ content = "# Allow passwordless startup of Vagrant when using NFS.\nCmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/su root -c echo '*' >> /etc/exports\nCmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart\nCmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -e /*/ d -ibak /etc/exports\n%staff ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE\n"
42
+
43
+ # To avoid breaking sudo, we must create this directory before updating /etc/sudoers
44
+ @ui.info "creating #{sudoersd_dir}"
45
+ result = system "sudo mkdir #{sudoersd_dir}"
46
+ raise StandardError, "sudo mkdir #{sudoersd_dir} failed" unless result
47
+
48
+ # Use backticks to capture stdout
49
+ sudoers = `sudo cat #{sudoers_file}`
50
+ unless sudoers.include? sudoers_include
51
+ @ui.info "Adding '#{sudoers_include}' to #{sudoers_file}"
52
+ result = system "echo '#{sudoers_include}' | sudo tee -a #{sudoers_file}"
53
+ raise StandardError, "echo '#{sudoers_include}' | sudo tee -a #{sudoers_file} failed" unless result
54
+ end
55
+
56
+ @ui.info "Adding #{sudoersd_dir}/vagrant file"
57
+ result = system "echo '#{content}' | sudo tee #{vagrant_sudoersd_filename}"
58
+ raise StandardError, "echo '#{content}' | sudo tee #{vagrant_sudoersd_filename} failed" unless result
59
+
60
+ @ui.info "Updating #{sudoersd_dir}/vagrant permissions to 0440"
61
+ result = system "sudo chmod 0440 #{vagrant_sudoersd_filename}"
62
+ raise StandardError, "sudo chmod 0440 #{vagrant_sudoersd_filename} failed" unless result
63
+ end
64
+ end
65
+
30
66
  def nfs?
31
67
  retryable(:tries => 10, :on => TypeError) do
32
68
  system("which nfsd > /dev/null 2>&1")
@@ -86,6 +122,8 @@ module Vagrant
86
122
  protected
87
123
 
88
124
  def nfs_cleanup(id)
125
+ create_vagrant_sudoers_policy
126
+
89
127
  return if !File.exist?("/etc/exports")
90
128
 
91
129
  # Use sed to just strip out the block of code which was inserted
@@ -2,5 +2,5 @@ module Vagrant
2
2
  # This will always be up to date with the current version of Vagrant,
3
3
  # since it is used to generate the gemspec and is also the source of
4
4
  # the version for `vagrant -v`
5
- VERSION = "1.0.9"
5
+ VERSION = "1.0.10"
6
6
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmhatfield-vagrant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
5
- prerelease:
4
+ version: 1.0.10
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mitchell Hashimoto
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-11-07 00:00:00.000000000 Z
12
+ date: 2014-02-19 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: archive-tar-minitar
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - '='
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - '='
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: childprocess
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: erubis
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: i18n
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ~>
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :runtime
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ~>
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: json
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ! '>='
85
75
  - !ruby/object:Gem::Version
@@ -90,7 +80,6 @@ dependencies:
90
80
  type: :runtime
91
81
  prerelease: false
92
82
  version_requirements: !ruby/object:Gem::Requirement
93
- none: false
94
83
  requirements:
95
84
  - - ! '>='
96
85
  - !ruby/object:Gem::Version
@@ -101,7 +90,6 @@ dependencies:
101
90
  - !ruby/object:Gem::Dependency
102
91
  name: log4r
103
92
  requirement: !ruby/object:Gem::Requirement
104
- none: false
105
93
  requirements:
106
94
  - - ~>
107
95
  - !ruby/object:Gem::Version
@@ -109,7 +97,6 @@ dependencies:
109
97
  type: :runtime
110
98
  prerelease: false
111
99
  version_requirements: !ruby/object:Gem::Requirement
112
- none: false
113
100
  requirements:
114
101
  - - ~>
115
102
  - !ruby/object:Gem::Version
@@ -117,7 +104,6 @@ dependencies:
117
104
  - !ruby/object:Gem::Dependency
118
105
  name: net-ssh
119
106
  requirement: !ruby/object:Gem::Requirement
120
- none: false
121
107
  requirements:
122
108
  - - ~>
123
109
  - !ruby/object:Gem::Version
@@ -125,7 +111,6 @@ dependencies:
125
111
  type: :runtime
126
112
  prerelease: false
127
113
  version_requirements: !ruby/object:Gem::Requirement
128
- none: false
129
114
  requirements:
130
115
  - - ~>
131
116
  - !ruby/object:Gem::Version
@@ -133,7 +118,6 @@ dependencies:
133
118
  - !ruby/object:Gem::Dependency
134
119
  name: net-scp
135
120
  requirement: !ruby/object:Gem::Requirement
136
- none: false
137
121
  requirements:
138
122
  - - ~>
139
123
  - !ruby/object:Gem::Version
@@ -141,7 +125,6 @@ dependencies:
141
125
  type: :runtime
142
126
  prerelease: false
143
127
  version_requirements: !ruby/object:Gem::Requirement
144
- none: false
145
128
  requirements:
146
129
  - - ~>
147
130
  - !ruby/object:Gem::Version
@@ -149,7 +132,6 @@ dependencies:
149
132
  - !ruby/object:Gem::Dependency
150
133
  name: rake
151
134
  requirement: !ruby/object:Gem::Requirement
152
- none: false
153
135
  requirements:
154
136
  - - ! '>='
155
137
  - !ruby/object:Gem::Version
@@ -157,7 +139,6 @@ dependencies:
157
139
  type: :development
158
140
  prerelease: false
159
141
  version_requirements: !ruby/object:Gem::Requirement
160
- none: false
161
142
  requirements:
162
143
  - - ! '>='
163
144
  - !ruby/object:Gem::Version
@@ -165,7 +146,6 @@ dependencies:
165
146
  - !ruby/object:Gem::Dependency
166
147
  name: contest
167
148
  requirement: !ruby/object:Gem::Requirement
168
- none: false
169
149
  requirements:
170
150
  - - ! '>='
171
151
  - !ruby/object:Gem::Version
@@ -173,7 +153,6 @@ dependencies:
173
153
  type: :development
174
154
  prerelease: false
175
155
  version_requirements: !ruby/object:Gem::Requirement
176
- none: false
177
156
  requirements:
178
157
  - - ! '>='
179
158
  - !ruby/object:Gem::Version
@@ -181,7 +160,6 @@ dependencies:
181
160
  - !ruby/object:Gem::Dependency
182
161
  name: minitest
183
162
  requirement: !ruby/object:Gem::Requirement
184
- none: false
185
163
  requirements:
186
164
  - - ~>
187
165
  - !ruby/object:Gem::Version
@@ -189,7 +167,6 @@ dependencies:
189
167
  type: :development
190
168
  prerelease: false
191
169
  version_requirements: !ruby/object:Gem::Requirement
192
- none: false
193
170
  requirements:
194
171
  - - ~>
195
172
  - !ruby/object:Gem::Version
@@ -197,7 +174,6 @@ dependencies:
197
174
  - !ruby/object:Gem::Dependency
198
175
  name: mocha
199
176
  requirement: !ruby/object:Gem::Requirement
200
- none: false
201
177
  requirements:
202
178
  - - ! '>='
203
179
  - !ruby/object:Gem::Version
@@ -205,7 +181,6 @@ dependencies:
205
181
  type: :development
206
182
  prerelease: false
207
183
  version_requirements: !ruby/object:Gem::Requirement
208
- none: false
209
184
  requirements:
210
185
  - - ! '>='
211
186
  - !ruby/object:Gem::Version
@@ -213,7 +188,6 @@ dependencies:
213
188
  - !ruby/object:Gem::Dependency
214
189
  name: rspec-core
215
190
  requirement: !ruby/object:Gem::Requirement
216
- none: false
217
191
  requirements:
218
192
  - - ~>
219
193
  - !ruby/object:Gem::Version
@@ -221,7 +195,6 @@ dependencies:
221
195
  type: :development
222
196
  prerelease: false
223
197
  version_requirements: !ruby/object:Gem::Requirement
224
- none: false
225
198
  requirements:
226
199
  - - ~>
227
200
  - !ruby/object:Gem::Version
@@ -229,7 +202,6 @@ dependencies:
229
202
  - !ruby/object:Gem::Dependency
230
203
  name: rspec-expectations
231
204
  requirement: !ruby/object:Gem::Requirement
232
- none: false
233
205
  requirements:
234
206
  - - ~>
235
207
  - !ruby/object:Gem::Version
@@ -237,7 +209,6 @@ dependencies:
237
209
  type: :development
238
210
  prerelease: false
239
211
  version_requirements: !ruby/object:Gem::Requirement
240
- none: false
241
212
  requirements:
242
213
  - - ~>
243
214
  - !ruby/object:Gem::Version
@@ -245,7 +216,6 @@ dependencies:
245
216
  - !ruby/object:Gem::Dependency
246
217
  name: rspec-mocks
247
218
  requirement: !ruby/object:Gem::Requirement
248
- none: false
249
219
  requirements:
250
220
  - - ~>
251
221
  - !ruby/object:Gem::Version
@@ -253,7 +223,6 @@ dependencies:
253
223
  type: :development
254
224
  prerelease: false
255
225
  version_requirements: !ruby/object:Gem::Requirement
256
- none: false
257
226
  requirements:
258
227
  - - ~>
259
228
  - !ruby/object:Gem::Version
@@ -682,26 +651,25 @@ files:
682
651
  - .yardopts
683
652
  homepage: http://vagrantup.com
684
653
  licenses: []
654
+ metadata: {}
685
655
  post_install_message:
686
656
  rdoc_options: []
687
657
  require_paths:
688
658
  - lib
689
659
  required_ruby_version: !ruby/object:Gem::Requirement
690
- none: false
691
660
  requirements:
692
661
  - - ! '>='
693
662
  - !ruby/object:Gem::Version
694
663
  version: '0'
695
664
  required_rubygems_version: !ruby/object:Gem::Requirement
696
- none: false
697
665
  requirements:
698
666
  - - ! '>='
699
667
  - !ruby/object:Gem::Version
700
668
  version: 1.3.6
701
669
  requirements: []
702
670
  rubyforge_project: vagrant
703
- rubygems_version: 1.8.25
671
+ rubygems_version: 2.1.11
704
672
  signing_key:
705
- specification_version: 3
673
+ specification_version: 4
706
674
  summary: Build and distribute virtualized development environments.
707
675
  test_files: []