aboutsummaryrefslogtreecommitdiff
path: root/lib/leap_cli/commands/deploy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/leap_cli/commands/deploy.rb')
-rw-r--r--lib/leap_cli/commands/deploy.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/leap_cli/commands/deploy.rb b/lib/leap_cli/commands/deploy.rb
index 8febe4d..31ae053 100644
--- a/lib/leap_cli/commands/deploy.rb
+++ b/lib/leap_cli/commands/deploy.rb
@@ -6,6 +6,8 @@ module LeapCli
arg_name '<node filter>'
command :deploy do |c|
c.action do |global_options,options,args|
+ init_submodules
+
nodes = manager.filter!(args)
if nodes.size > 1
say "Deploying to these nodes: #{nodes.keys.join(', ')}"
@@ -13,6 +15,7 @@ module LeapCli
quit! "OK. Bye."
end
end
+
ssh_connect(nodes) do |ssh|
# directory setup
ssh.leap.mkdir("/etc/leap")
@@ -46,5 +49,20 @@ module LeapCli
end
end
+ private
+
+ def init_submodules
+ Dir.chdir Path.platform do
+ statuses = assert_run! "git submodule status"
+ statuses.strip.split("\n").each do |status_line|
+ if status_line =~ /^-/
+ submodule = status_line.split(' ')[1]
+ progress "Updating submodule #{submodule}"
+ assert_run! "git submodule update --init #{submodule}"
+ end
+ end
+ end
+ end
+
end
end \ No newline at end of file