diff options
| author | elijah <elijah@riseup.net> | 2012-10-27 15:56:48 -0700 | 
|---|---|---|
| committer | elijah <elijah@riseup.net> | 2012-10-27 15:56:48 -0700 | 
| commit | 669bf5aa6f81e0cd1d1956bee6ed26715fb896fa (patch) | |
| tree | 1f2d82b28f714ce937b688f1d0814a862a6f9f8b /lib/leap_cli/commands/deploy.rb | |
| parent | 20ab16c583a139ff64b83ad5450257ca1dc5924e (diff) | |
auto run 'git submodule update --init' on leap platform if needed
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  | 
