tele 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/tele +8 -4
- data/tele.gemspec +3 -1
- data/test/tele.rb +7 -0
- metadata +4 -4
    
        data/bin/tele
    CHANGED
    
    | @@ -30,7 +30,7 @@ def path(*parts) | |
| 30 30 | 
             
            end
         | 
| 31 31 |  | 
| 32 32 | 
             
            def ssh(server, options = [])
         | 
| 33 | 
            -
              "ssh  | 
| 33 | 
            +
              ["ssh", *options, server]
         | 
| 34 34 | 
             
            end
         | 
| 35 35 |  | 
| 36 36 | 
             
            def layout
         | 
| @@ -51,7 +51,7 @@ def run(server, recipe, script) | |
| 51 51 | 
             
              if script.nil?
         | 
| 52 52 | 
             
                $out.unknown
         | 
| 53 53 | 
             
                print "\n"
         | 
| 54 | 
            -
                return
         | 
| 54 | 
            +
                return true
         | 
| 55 55 | 
             
              end
         | 
| 56 56 |  | 
| 57 57 | 
             
              result = execute(server, script) do |line|
         | 
| @@ -67,10 +67,12 @@ def run(server, recipe, script) | |
| 67 67 | 
             
              end
         | 
| 68 68 |  | 
| 69 69 | 
             
              print "\n"
         | 
| 70 | 
            +
             | 
| 71 | 
            +
              result == 0
         | 
| 70 72 | 
             
            end
         | 
| 71 73 |  | 
| 72 74 | 
             
            def execute(server, script)
         | 
| 73 | 
            -
              IO.popen(ssh(server, SSH_OPTIONS), "r+") do |io|
         | 
| 75 | 
            +
              IO.popen([*ssh(server, SSH_OPTIONS), err: [:child, :out]], "r+") do |io|
         | 
| 74 76 | 
             
                io.puts(script)
         | 
| 75 77 | 
             
                io.close_write
         | 
| 76 78 |  | 
| @@ -161,7 +163,9 @@ commands = Clap.run commands, | |
| 161 163 | 
             
                  recipes_for(assigned_roles).each do |recipe|
         | 
| 162 164 | 
             
                    script = path("recipes", "#{recipe}.sh")
         | 
| 163 165 |  | 
| 164 | 
            -
                    run(server, recipe, (File.read(script) if File.exist?(script)))
         | 
| 166 | 
            +
                    result = run(server, recipe, (File.read(script) if File.exist?(script)))
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                    break unless result
         | 
| 165 169 | 
             
                  end
         | 
| 166 170 | 
             
                end
         | 
| 167 171 | 
             
              }
         | 
    
        data/tele.gemspec
    CHANGED
    
    | @@ -1,6 +1,8 @@ | |
| 1 | 
            +
            require File.expand_path("lib/tele/version", File.dirname(__FILE__))
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            Gem::Specification.new do |s|
         | 
| 2 4 | 
             
              s.name              = "tele"
         | 
| 3 | 
            -
              s.version           =  | 
| 5 | 
            +
              s.version           = Tele::VERSION
         | 
| 4 6 | 
             
              s.summary           = "Provisioning at a distance"
         | 
| 5 7 | 
             
              s.description       = "Tele is a small provisioning framework that allows you to run bash scripts on remote servers over SSH."
         | 
| 6 8 | 
             
              s.authors           = ["Damian Janowski", "Michel Martens"]
         | 
    
        data/test/tele.rb
    CHANGED
    
    | @@ -55,6 +55,7 @@ end | |
| 55 55 | 
             
            test "`tele deploy` runs recipes" do
         | 
| 56 56 | 
             
              out, err = tele("deploy", "-d", "test/.tele.simple")
         | 
| 57 57 |  | 
| 58 | 
            +
              assert out =~ %r[^staging/cassandra.* .*Can't find Cassandra]
         | 
| 58 59 | 
             
              assert out =~ %r[^staging/cassandra.* .*ERROR]
         | 
| 59 60 | 
             
              assert out =~ %r[^staging/redis.* Installed]
         | 
| 60 61 | 
             
              assert out =~ %r[^staging/redis.* .*OK]
         | 
| @@ -69,6 +70,12 @@ test "`tele deploy -s production` runs only production recipes" do | |
| 69 70 | 
             
              assert out =~ %r[production/redis.*: .*OK]
         | 
| 70 71 | 
             
            end
         | 
| 71 72 |  | 
| 73 | 
            +
            test "`tele deploy` halts deploy if a recipe fails" do
         | 
| 74 | 
            +
              out, err = tele("deploy", "-d", "test/.tele.error")
         | 
| 75 | 
            +
             | 
| 76 | 
            +
              assert out =~ %r[db-1/cassandra.*: .*ERROR]
         | 
| 77 | 
            +
              assert out !~ %r[db-1/no-run]
         | 
| 78 | 
            +
            end
         | 
| 72 79 |  | 
| 73 80 | 
             
            test "`tele deploy` doesn't run the same recipe twice in a single server" do
         | 
| 74 81 | 
             
              out, err = tele("deploy", "-d", "test/.tele.simple")
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tele
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.5
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,11 +10,11 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-01- | 
| 13 | 
            +
            date: 2012-01-25 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: clap
         | 
| 17 | 
            -
              requirement: & | 
| 17 | 
            +
              requirement: &70215095440960 !ruby/object:Gem::Requirement
         | 
| 18 18 | 
             
                none: false
         | 
| 19 19 | 
             
                requirements:
         | 
| 20 20 | 
             
                - - ! '>='
         | 
| @@ -22,7 +22,7 @@ dependencies: | |
| 22 22 | 
             
                    version: '0'
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements: * | 
| 25 | 
            +
              version_requirements: *70215095440960
         | 
| 26 26 | 
             
            description: Tele is a small provisioning framework that allows you to run bash scripts
         | 
| 27 27 | 
             
              on remote servers over SSH.
         | 
| 28 28 | 
             
            email:
         |