vagrant-yaml 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vagrant-yaml/commands/yaml_update.rb +40 -8
- data/lib/vagrant-yaml/version.rb +1 -1
- data/locales/en.yml +8 -0
- metadata +1 -1
@@ -9,33 +9,65 @@ module VagrantYaml
|
|
9
9
|
def execute
|
10
10
|
options = {}
|
11
11
|
|
12
|
+
# Boolean whether we should actually go through with the update
|
13
|
+
# or not. This is true only if the "--force" flag is set or if the
|
14
|
+
# user confirms it.
|
15
|
+
do_update = false
|
16
|
+
|
12
17
|
opts = OptionParser.new do |opts|
|
13
|
-
opts.banner = "Usage: vagrant yaml update
|
18
|
+
opts.banner = "Usage: vagrant yaml update"
|
19
|
+
|
20
|
+
opts.on("-f", "--force", "Update without confirmation.") do |f|
|
21
|
+
options[:force] = f
|
22
|
+
end
|
14
23
|
end
|
15
24
|
|
16
25
|
# Parse the options
|
17
26
|
argv = parse_options(opts)
|
18
27
|
return if !argv
|
19
28
|
|
29
|
+
if options[:force]
|
30
|
+
do_update = true
|
31
|
+
else
|
32
|
+
choice = nil
|
33
|
+
begin
|
34
|
+
choice = @env.ui.ask(I18n.t("vagrant.plugins.yaml.commands.update.confirmation"))
|
35
|
+
|
36
|
+
rescue Errors::UIExpectsTTY
|
37
|
+
# We raise a more specific error but one which basically
|
38
|
+
# means the same thing.
|
39
|
+
raise Errors::UpdateRequiresForce
|
40
|
+
end
|
41
|
+
do_update = choice.upcase == "Y"
|
42
|
+
end
|
43
|
+
|
44
|
+
if do_update
|
45
|
+
@logger.info("Updating project with latest Vagrantfile from vagrant-yaml.")
|
46
|
+
update
|
47
|
+
else
|
48
|
+
@logger.info("Not updating project since confirmation was declined.")
|
49
|
+
@env.ui.success(I18n.t("vagrant.plugins.yaml.commands.update.will_not_update"),
|
50
|
+
:prefix => false)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def update
|
20
55
|
save_path = @env.cwd.join("Vagrantfile")
|
21
|
-
# raise Errors::VagrantfileExistsError if save_path.exist?
|
22
56
|
|
23
|
-
template_path = ::
|
24
|
-
contents = Vagrant::Util::TemplateRenderer.render(template_path
|
25
|
-
:box_name => argv[0] || "base",
|
26
|
-
:box_url => argv[1])
|
57
|
+
template_path = ::VagrantYaml.source_root.join("templates/Vagrantfile")
|
58
|
+
contents = Vagrant::Util::TemplateRenderer.render(template_path)
|
27
59
|
|
28
60
|
# Write out the contents
|
29
61
|
save_path.open("w+") do |f|
|
30
62
|
f.write(contents)
|
31
63
|
end
|
32
64
|
|
33
|
-
@env.ui.info(I18n.t("vagrant.plugins.yaml.commands.
|
65
|
+
@env.ui.info(I18n.t("vagrant.plugins.yaml.commands.update.success"),
|
34
66
|
:prefix => false)
|
35
67
|
|
36
68
|
# Success, exit status 0
|
37
69
|
0
|
38
|
-
|
70
|
+
end
|
39
71
|
end
|
40
72
|
end
|
41
73
|
end
|
data/lib/vagrant-yaml/version.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -11,6 +11,14 @@ en:
|
|
11
11
|
the Yaml files it finds in /vms-enabled. You are now ready to `vagrant up` your
|
12
12
|
first virtual environment! Please read the comments in the default Yaml VM
|
13
13
|
config file to see how it works.
|
14
|
+
update:
|
15
|
+
success: |-
|
16
|
+
Vagrantfile updated using the latesy one from vagrant-yaml.
|
17
|
+
confirmation: |-
|
18
|
+
This operation will overwrite the Vagrantfile in this project with the one in the
|
19
|
+
vagrant-yaml gem. Do you want to proceed?
|
20
|
+
will_not_update: |-
|
21
|
+
User aborted. Vagrantfile was not updated.
|
14
22
|
|
15
23
|
errors:
|
16
24
|
vagrantfile_exists: |-
|