diff options
Diffstat (limited to 'lib/leap_cli/commands/deploy.rb')
-rw-r--r-- | lib/leap_cli/commands/deploy.rb | 18 |
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 |