vagrant-export 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Gemfile.lock +102 -0
- data/Vagrantfile +3 -0
- data/lib/vagrant-export/command.rb +8 -2
- data/lib/vagrant-export/error.rb +18 -0
- data/lib/vagrant-export/exporter.rb +116 -33
- data/lib/vagrant-export/version.rb +1 -1
- data/res/cleanup.sh +20 -21
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ddbe360fa54bea73f25c2241a25154f40740a4a
|
4
|
+
data.tar.gz: 46c28c9124e22569ae174c8a90b1de86dfa57103
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdf99b3412fbb5680e3b6c499c70c7af87f4590c1661f7609540954468cd3dfa36cacf4d2c9136c4d69daeda14661aebc5e38f780e76c693fafa551ba96b9b4d
|
7
|
+
data.tar.gz: 535bc6e78a326bc85e06d513e125c6a53f3b75abe94fd2c29931017e0a3a076e6613775207654d1e00618349756f4b9332c25699b9a5b5be8855afb046b5fbad
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/mitchellh/vagrant.git
|
3
|
+
revision: a8dcf92f14d8bb8828a43b91804334673508f467
|
4
|
+
specs:
|
5
|
+
vagrant (1.7.2)
|
6
|
+
bundler (>= 1.5.2, < 1.8.0)
|
7
|
+
childprocess (~> 0.5.0)
|
8
|
+
erubis (~> 2.7.0)
|
9
|
+
hashicorp-checkpoint (~> 0.1.1)
|
10
|
+
i18n (>= 0.6.0, <= 0.8.0)
|
11
|
+
listen (~> 2.8.0)
|
12
|
+
log4r (~> 1.1.9, < 1.1.11)
|
13
|
+
net-scp (~> 1.1.0)
|
14
|
+
net-sftp (~> 2.1)
|
15
|
+
net-ssh (>= 2.6.6, < 2.10.0)
|
16
|
+
nokogiri (= 1.6.3.1)
|
17
|
+
rb-kqueue (~> 0.2.0)
|
18
|
+
rest-client (>= 1.6.0, < 2.0)
|
19
|
+
wdm (~> 0.1.0)
|
20
|
+
winrm (~> 1.3)
|
21
|
+
winrm-fs (~> 0.1.0)
|
22
|
+
|
23
|
+
PATH
|
24
|
+
remote: .
|
25
|
+
specs:
|
26
|
+
vagrant-export (0.3.3)
|
27
|
+
|
28
|
+
GEM
|
29
|
+
remote: https://rubygems.org/
|
30
|
+
specs:
|
31
|
+
builder (3.2.2)
|
32
|
+
celluloid (0.16.0)
|
33
|
+
timers (~> 4.0.0)
|
34
|
+
childprocess (0.5.5)
|
35
|
+
ffi (~> 1.0, >= 1.0.11)
|
36
|
+
erubis (2.7.0)
|
37
|
+
ffi (1.9.7)
|
38
|
+
gssapi (1.2.0)
|
39
|
+
ffi (>= 1.0.1)
|
40
|
+
gyoku (1.2.3)
|
41
|
+
builder (>= 2.1.2)
|
42
|
+
hashicorp-checkpoint (0.1.4)
|
43
|
+
hitimes (1.2.2)
|
44
|
+
httpclient (2.6.0.1)
|
45
|
+
i18n (0.7.0)
|
46
|
+
listen (2.8.6)
|
47
|
+
celluloid (>= 0.15.2)
|
48
|
+
rb-fsevent (>= 0.9.3)
|
49
|
+
rb-inotify (>= 0.9)
|
50
|
+
little-plugger (1.1.3)
|
51
|
+
log4r (1.1.10)
|
52
|
+
logging (1.8.2)
|
53
|
+
little-plugger (>= 1.1.3)
|
54
|
+
multi_json (>= 1.8.4)
|
55
|
+
mime-types (2.4.3)
|
56
|
+
mini_portile (0.6.0)
|
57
|
+
multi_json (1.11.0)
|
58
|
+
net-scp (1.1.2)
|
59
|
+
net-ssh (>= 2.6.5)
|
60
|
+
net-sftp (2.1.2)
|
61
|
+
net-ssh (>= 2.6.5)
|
62
|
+
net-ssh (2.9.2)
|
63
|
+
netrc (0.10.3)
|
64
|
+
nokogiri (1.6.3.1-x64-mingw32)
|
65
|
+
mini_portile (= 0.6.0)
|
66
|
+
nori (2.4.0)
|
67
|
+
rb-fsevent (0.9.4)
|
68
|
+
rb-inotify (0.9.5)
|
69
|
+
ffi (>= 0.5.0)
|
70
|
+
rb-kqueue (0.2.3)
|
71
|
+
ffi (>= 0.5.0)
|
72
|
+
rest-client (1.7.3-x64-mingw32)
|
73
|
+
ffi (~> 1.9)
|
74
|
+
mime-types (>= 1.16, < 3.0)
|
75
|
+
netrc (~> 0.7)
|
76
|
+
rubyntlm (0.4.0)
|
77
|
+
rubyzip (1.1.7)
|
78
|
+
timers (4.0.1)
|
79
|
+
hitimes
|
80
|
+
uuidtools (2.1.5)
|
81
|
+
wdm (0.1.0)
|
82
|
+
winrm (1.3.0)
|
83
|
+
builder (>= 2.1.2)
|
84
|
+
gssapi (~> 1.2)
|
85
|
+
gyoku (~> 1.0)
|
86
|
+
httpclient (~> 2.2, >= 2.2.0.2)
|
87
|
+
logging (~> 1.6, >= 1.6.1)
|
88
|
+
nori (~> 2.0)
|
89
|
+
rubyntlm (~> 0.4.0)
|
90
|
+
uuidtools (~> 2.1.2)
|
91
|
+
winrm-fs (0.1.0)
|
92
|
+
erubis (~> 2.7)
|
93
|
+
logging (~> 1.6, >= 1.6.1)
|
94
|
+
rubyzip (~> 1.1)
|
95
|
+
winrm (~> 1.3.0)
|
96
|
+
|
97
|
+
PLATFORMS
|
98
|
+
x64-mingw32
|
99
|
+
|
100
|
+
DEPENDENCIES
|
101
|
+
vagrant!
|
102
|
+
vagrant-export!
|
data/Vagrantfile
ADDED
@@ -33,10 +33,16 @@ module VagrantPlugins
|
|
33
33
|
return 1 unless argv
|
34
34
|
|
35
35
|
require_relative 'exporter'
|
36
|
-
ex = Exporter.new(@env, @logger)
|
37
36
|
|
38
37
|
with_target_vms argv, reverse: true do |machine|
|
39
|
-
ex.
|
38
|
+
ex = Exporter.new(@env, @logger, machine)
|
39
|
+
|
40
|
+
if File.file?(ex.target_box)
|
41
|
+
require_relative 'error'
|
42
|
+
raise BoxAlreadyExists
|
43
|
+
end
|
44
|
+
|
45
|
+
ex.handle(options[:fast], options[:bare])
|
40
46
|
end
|
41
47
|
0
|
42
48
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# #
|
2
|
+
# This is free software; you can redistribute it and/or modify it under #
|
3
|
+
# the terms of the MIT- / X11 - License #
|
4
|
+
# #
|
5
|
+
|
6
|
+
module VagrantPlugins
|
7
|
+
module Export
|
8
|
+
class VirtualboxExportError < Vagrant::Errors::VagrantError
|
9
|
+
error_message('Cannot export Virtualbox machine to appliance')
|
10
|
+
end
|
11
|
+
class BoxAlreadyExists < Vagrant::Errors::VagrantError
|
12
|
+
error_message('A box file for this machine already exists')
|
13
|
+
end
|
14
|
+
class NotCreated < Vagrant::Errors::VagrantError
|
15
|
+
error_message('Cannot export a not created machine. Please make at least one vagrant up')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -4,6 +4,7 @@
|
|
4
4
|
# #
|
5
5
|
|
6
6
|
require 'fileutils'
|
7
|
+
require_relative 'error'
|
7
8
|
|
8
9
|
module VagrantPlugins
|
9
10
|
module Export
|
@@ -11,39 +12,59 @@ module VagrantPlugins
|
|
11
12
|
|
12
13
|
# @param env Vagrant::Environment
|
13
14
|
# @param logger Log4r::Logger
|
14
|
-
|
15
|
+
# @param vm Vagrant::Machine
|
16
|
+
def initialize(env, logger, vm)
|
17
|
+
@vm = vm
|
15
18
|
@env = env
|
16
19
|
@logger = logger
|
17
20
|
end
|
18
21
|
|
19
|
-
# @param vm Vagrant::Machine
|
20
22
|
# @param fast Boolean
|
21
23
|
# @param bare Boolean
|
22
24
|
# @return string
|
23
|
-
def handle(
|
24
|
-
@
|
25
|
-
@
|
25
|
+
def handle(fast, bare)
|
26
|
+
@did_run = false
|
27
|
+
@private_key = nil
|
28
|
+
@tmp_path = nil
|
29
|
+
@box_file_name = nil
|
30
|
+
|
31
|
+
if @vm.state.short_description == 'not created'
|
32
|
+
raise VagrantPlugins::Export::NotCreated
|
33
|
+
end
|
26
34
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
35
|
+
begin
|
36
|
+
ssh_info = vm.ssh_info
|
37
|
+
unless ssh_info == nil
|
38
|
+
@private_key = ssh_info[:private_key_path]
|
39
|
+
end
|
40
|
+
|
41
|
+
unless fast
|
42
|
+
if can_compress
|
43
|
+
compress
|
44
|
+
else
|
45
|
+
@vm.ui.error('Cannot compress this type of machine')
|
46
|
+
return 1
|
47
|
+
end
|
33
48
|
end
|
34
|
-
end
|
35
49
|
|
36
|
-
|
37
|
-
|
50
|
+
return 1 unless export
|
51
|
+
return 1 unless files(bare)
|
38
52
|
|
39
|
-
|
53
|
+
finalize
|
54
|
+
ensure
|
55
|
+
FileUtils.rm_rf(@tmp_path) if Dir.exists?(@tmp_path)
|
56
|
+
FileUtils.rm_rf(@box_file_name) if File.file?(@box_file_name)
|
57
|
+
end
|
58
|
+
target_box
|
59
|
+
end
|
40
60
|
|
41
|
-
|
61
|
+
def target_box
|
62
|
+
box_name = @vm.box.name.gsub('/', '_')
|
63
|
+
File.join(@env.cwd, box_name + '.box')
|
42
64
|
end
|
43
65
|
|
44
66
|
protected
|
45
67
|
|
46
|
-
|
47
68
|
def can_compress
|
48
69
|
if @vm.state.short_description == 'running'
|
49
70
|
@did_run = true
|
@@ -55,6 +76,12 @@ module VagrantPlugins
|
|
55
76
|
compress_supported = false
|
56
77
|
|
57
78
|
if @vm.config.vm.communicator != :winrm
|
79
|
+
|
80
|
+
ssh_info = vm.ssh_info
|
81
|
+
unless ssh_info == nil
|
82
|
+
@private_key = ssh_info[:private_key_path]
|
83
|
+
end
|
84
|
+
|
58
85
|
@vm.communicate.execute('lsb_release -i -s', error_key: :ssh_bad_exit_status_muted) do |type, data|
|
59
86
|
if type == :stdout && data.to_s =~ /mint|ubuntu|debian/i
|
60
87
|
compress_supported = true
|
@@ -100,12 +127,19 @@ module VagrantPlugins
|
|
100
127
|
# Shamelessly stolen from Vagrant::Action::General::Package
|
101
128
|
def setup_private_key
|
102
129
|
|
103
|
-
#
|
130
|
+
# Key generated by vagrant
|
104
131
|
path = @vm.data_dir.join('private_key')
|
132
|
+
|
133
|
+
# Use a different generated key if configured
|
134
|
+
if @private_key != nil
|
135
|
+
path = File.new(@private_key.to_s, 'r') unless @private_key == Vagrant.source_root.join('keys', 'vagrant')
|
136
|
+
end
|
137
|
+
|
138
|
+
# If we don't have a generated private key, we do nothing
|
105
139
|
return unless path.file?
|
106
140
|
|
107
141
|
# Copy it into our box directory
|
108
|
-
new_path = File.join(@tmp_path, '
|
142
|
+
new_path = File.join(@tmp_path, 'private_key')
|
109
143
|
@logger.debug("Copy private key from #{path} to #{new_path}")
|
110
144
|
FileUtils.cp(path, new_path)
|
111
145
|
|
@@ -135,12 +169,11 @@ module VagrantPlugins
|
|
135
169
|
@logger.debug('No Vagrantfile found, create one')
|
136
170
|
end
|
137
171
|
|
138
|
-
|
139
172
|
File.open(vf_path, mode) do |f|
|
140
173
|
f.binmode
|
141
174
|
f.puts
|
142
175
|
f.puts %Q[Vagrant.configure("2") do |config|]
|
143
|
-
f.puts %Q[ config.ssh.private_key_path = File.expand_path("../
|
176
|
+
f.puts %Q[ config.ssh.private_key_path = File.expand_path("../private_key", __FILE__)]
|
144
177
|
f.puts %Q[end]
|
145
178
|
end
|
146
179
|
end
|
@@ -192,12 +225,34 @@ module VagrantPlugins
|
|
192
225
|
}
|
193
226
|
|
194
227
|
else
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
228
|
+
|
229
|
+
ovf_file = File.join(exported_path, @vm.box.name.gsub(/[^a-zA-Z0-9]+/, '_')) + '.ovf'
|
230
|
+
vm_id = @vm.id.to_s
|
231
|
+
|
232
|
+
opts = {}
|
233
|
+
opts[:notify] = [:stdout, :stderr]
|
234
|
+
|
235
|
+
@logger.debug("Export #{vm_id} to #{ovf_file}")
|
236
|
+
@env.ui.info('0%', new_line: false)
|
237
|
+
|
238
|
+
Vagrant::Util::Subprocess.execute('VBoxManage', 'export', vm_id, '-o', ovf_file, opts) { |io, data|
|
239
|
+
|
240
|
+
d = data.to_s
|
241
|
+
@logger.debug(d)
|
242
|
+
|
243
|
+
unless io == :stdout
|
244
|
+
if /\d+%/ =~ d
|
245
|
+
@env.ui.clear_line
|
246
|
+
@env.ui.info(d.match(/\d+%/).to_a.pop, new_line: false)
|
247
|
+
else
|
248
|
+
@logger.error(d)
|
249
|
+
raise VirtualboxExportError
|
250
|
+
end
|
251
|
+
end
|
252
|
+
}
|
199
253
|
end
|
200
254
|
|
255
|
+
@env.ui.clear_line
|
201
256
|
@logger.debug("Exported VM to #{exported_path}")
|
202
257
|
end
|
203
258
|
|
@@ -283,9 +338,41 @@ module VagrantPlugins
|
|
283
338
|
@vm.ui.info('Packaging box file')
|
284
339
|
|
285
340
|
Vagrant::Util::SafeChdir.safe_chdir(@tmp_path) do
|
341
|
+
|
286
342
|
files = Dir.glob(File.join('.', '**', '*'))
|
287
343
|
@logger.debug("Create box file #{@box_file_name} containing #{files}")
|
288
|
-
|
344
|
+
|
345
|
+
if Vagrant::Util::Which.which('pv') != nil && Vagrant::Util::Which.which('tar') && Vagrant::Util::Which.which('gzip')
|
346
|
+
total_size = 0
|
347
|
+
|
348
|
+
logger.debug('Using custom packaging command to create progress output')
|
349
|
+
@env.ui.info('Starting compression')
|
350
|
+
|
351
|
+
files.each { |f|
|
352
|
+
total_size += File.size(f)
|
353
|
+
}
|
354
|
+
|
355
|
+
@logger.debug("Complete size of files is #{total_size} bytes")
|
356
|
+
|
357
|
+
opts = {}
|
358
|
+
opts[:notify] = [:stderr, :stdout]
|
359
|
+
|
360
|
+
Vagrant::Util::Subprocess.execute('tar', ' -cf - ', *files, ' | pv -n -s ', total_size, ' | gzip -c > ', @box_file_name) { |io, data|
|
361
|
+
d = data.to_s
|
362
|
+
|
363
|
+
if io == :stderr
|
364
|
+
@logger.error(d)
|
365
|
+
else
|
366
|
+
@env.ui.clear_line
|
367
|
+
@env.ui.info(d.match(/\d+/).to_a.pop.to_s + '%')
|
368
|
+
end
|
369
|
+
}
|
370
|
+
|
371
|
+
@env.ui.clear_line
|
372
|
+
|
373
|
+
else
|
374
|
+
Vagrant::Util::Subprocess.execute('bsdtar', '-czf', @box_file_name, *files)
|
375
|
+
end
|
289
376
|
end
|
290
377
|
|
291
378
|
0
|
@@ -294,15 +381,11 @@ module VagrantPlugins
|
|
294
381
|
def finalize
|
295
382
|
# Rename the box file
|
296
383
|
if File.exist?(@box_file_name)
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
@vm.ui.info('Created ' + @target_box)
|
384
|
+
target = target_box
|
385
|
+
FileUtils.mv(@box_file_name, target)
|
386
|
+
@vm.ui.info('Created ' + target)
|
301
387
|
end
|
302
388
|
|
303
|
-
# Remove the tmp files
|
304
|
-
FileUtils.rm_rf(@tmp_path)
|
305
|
-
|
306
389
|
# Resume the machine
|
307
390
|
if @did_run
|
308
391
|
@vm.ui.info('Bringing the machine back up')
|
data/res/cleanup.sh
CHANGED
@@ -15,7 +15,7 @@ done
|
|
15
15
|
|
16
16
|
echo "Removing old kernel packages"
|
17
17
|
apt-get -qq -y --purge remove $(dpkg --list | egrep '^rc' | awk '{print $2}')
|
18
|
-
apt-get -qq -y --purge remove $(dpkg --list | egrep 'linux-(image(-extra)?|headers)-[0-9]' | awk '{print $3,$2}' | grep -v $(uname -r | sed -e s/-generic//g) | awk '{
|
18
|
+
apt-get -qq -y --purge remove $(dpkg --list | egrep '^i' | egrep 'linux-(image(-extra)?|headers)-[0-9]' | awk '{print $3,$2}' | grep -v $(uname -r | sed -e s/-generic//g) | awk '{print $2}')
|
19
19
|
|
20
20
|
echo "Cleaning up apt"
|
21
21
|
apt-get -qq -y --purge autoremove
|
@@ -27,6 +27,7 @@ echo "Cleaning up home"
|
|
27
27
|
rm -rf $HOME/.cache
|
28
28
|
rm -rf $HOME/.local
|
29
29
|
rm -rf $HOME/.npm
|
30
|
+
rm -rf $HOME/.composer
|
30
31
|
rm -rf $HOME/tmp
|
31
32
|
|
32
33
|
if [[ -d /www ]]; then
|
@@ -37,41 +38,39 @@ else
|
|
37
38
|
DOCROOT="/var/www"
|
38
39
|
fi
|
39
40
|
|
40
|
-
echo "Cleaning up document root $DOCROOT"
|
41
|
+
echo "Cleaning up document root ${DOCROOT}"
|
41
42
|
|
42
|
-
if [[ -d $DOCROOT/typo3temp ]]; then
|
43
|
+
if [[ -d ${DOCROOT}/typo3temp ]]; then
|
43
44
|
echo "Removing TYPO3 CMS temp files"
|
44
|
-
find $DOCROOT/typo3temp -type f -exec rm -f {} \;
|
45
|
-
find $DOCROOT/typo3temp -type d -iname "_processed_" -exec rm -rf {} \; > /dev/null 2>&1
|
45
|
+
find ${DOCROOT}/typo3temp -type f -exec rm -f {} \;
|
46
46
|
|
47
|
-
if [[ -d $DOCROOT/fileadmin/_processed_ ]]; then
|
48
|
-
rm -rf $DOCROOT/fileadmin/_processed_/* > /dev/null 2>&1
|
47
|
+
if [[ -d ${DOCROOT}/fileadmin/_processed_ ]]; then
|
48
|
+
rm -rf ${DOCROOT}/fileadmin/_processed_/* > /dev/null 2>&1
|
49
49
|
fi
|
50
50
|
fi
|
51
51
|
|
52
|
-
if [[ -d $DOCROOT/Data/Temporary ]]; then
|
52
|
+
if [[ -d ${DOCROOT}/Data/Temporary ]]; then
|
53
53
|
echo "Removing TYPO3 Flow temp files"
|
54
|
-
rm -rf $DOCROOT/Data/Temporary/* > /dev/null 2>&1
|
54
|
+
rm -rf ${DOCROOT}/Data/Temporary/* > /dev/null 2>&1
|
55
55
|
fi
|
56
56
|
|
57
57
|
if [[ -d /var/www/var/cache ]]; then
|
58
58
|
echo "Removing Magento temp files"
|
59
|
-
rm -rf $DOCROOT/downloader/.cache/*
|
60
|
-
rm -rf $DOCROOT/downloader/pearlib/cache/*
|
61
|
-
rm -rf $DOCROOT/downloader/pearlib/download/*
|
62
|
-
rm -rf $DOCROOT/var/cache/*
|
63
|
-
rm -rf $DOCROOT/var/locks/*
|
64
|
-
rm -rf $DOCROOT/var/log/*
|
65
|
-
rm -rf $DOCROOT/var/report/*
|
66
|
-
rm -rf $DOCROOT/var/session/*
|
67
|
-
rm -rf $DOCROOT/var/tmp/*
|
59
|
+
rm -rf ${DOCROOT}/downloader/.cache/*
|
60
|
+
rm -rf ${DOCROOT}/downloader/pearlib/cache/*
|
61
|
+
rm -rf ${DOCROOT}/downloader/pearlib/download/*
|
62
|
+
rm -rf ${DOCROOT}/var/cache/*
|
63
|
+
rm -rf ${DOCROOT}/var/locks/*
|
64
|
+
rm -rf ${DOCROOT}/var/log/*
|
65
|
+
rm -rf ${DOCROOT}/var/report/*
|
66
|
+
rm -rf ${DOCROOT}/var/session/*
|
67
|
+
rm -rf ${DOCROOT}/var/tmp/*
|
68
68
|
fi
|
69
69
|
|
70
70
|
echo "Zeroing device to make space..."
|
71
|
-
dd if=/dev/zero of=/EMPTY bs=1M
|
71
|
+
dd if=/dev/zero of=/EMPTY bs=1M > /dev/null 2>&1
|
72
|
+
sync
|
72
73
|
rm -f /EMPTY
|
73
|
-
|
74
|
-
echo "Sync to disc"
|
75
74
|
sync
|
76
75
|
|
77
76
|
exit 0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-export
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georg Grossberger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Export boxes to .box files including the original Vagrantfile and some
|
14
14
|
cleanups inside the VM
|
@@ -19,9 +19,12 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- ".gitignore"
|
21
21
|
- Gemfile
|
22
|
+
- Gemfile.lock
|
22
23
|
- README.md
|
24
|
+
- Vagrantfile
|
23
25
|
- lib/vagrant-export.rb
|
24
26
|
- lib/vagrant-export/command.rb
|
27
|
+
- lib/vagrant-export/error.rb
|
25
28
|
- lib/vagrant-export/exporter.rb
|
26
29
|
- lib/vagrant-export/plugin.rb
|
27
30
|
- lib/vagrant-export/version.rb
|
@@ -47,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
50
|
version: '0'
|
48
51
|
requirements: []
|
49
52
|
rubyforge_project:
|
50
|
-
rubygems_version: 2.
|
53
|
+
rubygems_version: 2.2.2
|
51
54
|
signing_key:
|
52
55
|
specification_version: 4
|
53
56
|
summary: Export boxes to .box files including the original Vagrantfile and some cleanups
|