turbot 0.0.22 → 0.0.23
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.
- checksums.yaml +15 -0
- data/lib/turbot/command/bots.rb +46 -28
- data/lib/turbot/version.rb +1 -1
- metadata +22 -44
- data/lib/turbot/command/config.rb +0 -123
- data/lib/turbot/command/keys.rb +0 -115
- data/lib/turbot/command/logs.rb +0 -34
- data/lib/turbot/command/status.rb +0 -50
- data/lib/turbot/command/update.rb +0 -47
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            !binary "U0hBMQ==":
         | 
| 3 | 
            +
              metadata.gz: !binary |-
         | 
| 4 | 
            +
                OTFkYjQ5ODY3ZGNiNjY1OWZiZjUxNDI0ODIzZjY5ZDVkNjQ3MTY4Yg==
         | 
| 5 | 
            +
              data.tar.gz: !binary |-
         | 
| 6 | 
            +
                MGZlYWVkODdhNmE2ZmRmMTI5ODI4Y2E3ZWY4NmNjZjQwNjgzYzJkZA==
         | 
| 7 | 
            +
            SHA512:
         | 
| 8 | 
            +
              metadata.gz: !binary |-
         | 
| 9 | 
            +
                NTkzODA2NjM4OWE3ZTkwNGE2NWQ1NTE5NDJkY2JmYTY0MjJlNzY1MWFkODM2
         | 
| 10 | 
            +
                ZDQzZTA0YmM2MTc4ODhkZGI0ZDQ5ZjE0ODllOTAwYmM0ZWU1NzdlNzVmOTQ4
         | 
| 11 | 
            +
                MGY1OTVlZDM4OWNhNjA3ZWFiYjY0MTIwNTc1ZjczOWQ1NzE1Mjk=
         | 
| 12 | 
            +
              data.tar.gz: !binary |-
         | 
| 13 | 
            +
                YzgyNmMzZGI2OTg2MzRhMWMzZTdmNjA3MjU5MjYwYWM2ZDVjOGM3NTk0YmYy
         | 
| 14 | 
            +
                NGRmMGNkY2JkMDFiYzE0MDg4MGY3YmFmY2FiN2EzYjM5NDMwNjJkNzZkNzYx
         | 
| 15 | 
            +
                YTIxNDc5Y2M0OTg4N2M4NTgwYjBhMjkxZmU2OWNmZTRiMmI4MDM=
         | 
    
        data/lib/turbot/command/bots.rb
    CHANGED
    
    | @@ -7,7 +7,7 @@ require 'open3' | |
| 7 7 | 
             
            require 'base64'
         | 
| 8 8 | 
             
            require 'shellwords'
         | 
| 9 9 |  | 
| 10 | 
            -
            # manage bots (create,  | 
| 10 | 
            +
            # manage bots (create, submit data and code)
         | 
| 11 11 | 
             
            #
         | 
| 12 12 | 
             
            class Turbot::Command::Bots < Turbot::Command::Base
         | 
| 13 13 |  | 
| @@ -209,7 +209,8 @@ class Turbot::Command::Bots < Turbot::Command::Base | |
| 209 209 | 
             
                  end
         | 
| 210 210 | 
             
                  puts line if opts[:dump]
         | 
| 211 211 | 
             
                  if JSON.parse(line).slice(*config['identifying_fields']).blank?
         | 
| 212 | 
            -
                    error | 
| 212 | 
            +
                    error = "Couldn't find any of #{config['identifying_fields']}"
         | 
| 213 | 
            +
                    error("LINE WITH ERROR: #{line}\n\nERRORS: #{error}")
         | 
| 213 214 | 
             
                  end
         | 
| 214 215 |  | 
| 215 216 | 
             
                  count += 1
         | 
| @@ -229,28 +230,28 @@ class Turbot::Command::Bots < Turbot::Command::Base | |
| 229 230 | 
             
                validate(:dump => true)
         | 
| 230 231 | 
             
              end
         | 
| 231 232 |  | 
| 232 | 
            -
              # bots:single
         | 
| 233 | 
            -
              #
         | 
| 234 | 
            -
              # Execute bot in same way as OpenCorporates single-record update
         | 
| 235 | 
            -
              #
         | 
| 236 | 
            -
              # $ heroku bots:single
         | 
| 237 | 
            -
              # Enter argument (as JSON object):
         | 
| 238 | 
            -
              # {"id": "frob123"}
         | 
| 239 | 
            -
              # {"id": "frob123", "stuff": "updated-data-for-this-record"}
         | 
| 240 | 
            -
             | 
| 241 | 
            -
              def single
         | 
| 242 | 
            -
                # This will need to be language-aware, eventually
         | 
| 243 | 
            -
                scraper_path    = shift_argument || scraper_file(Dir.pwd)
         | 
| 244 | 
            -
                validate_arguments!
         | 
| 245 | 
            -
                print 'Arguments (as JSON object, e.g. {"id":"ABC123"}: '
         | 
| 246 | 
            -
                arg = ask
         | 
| 247 | 
            -
                count = 0
         | 
| 248 | 
            -
                run_scraper_each_line("#{scraper_path} #{bot} #{Shellwords.shellescape(arg)}") do |line|
         | 
| 249 | 
            -
                  raise "Your scraper returned more than one value!" if count > 1
         | 
| 250 | 
            -
                  puts line
         | 
| 251 | 
            -
                  count += 1
         | 
| 252 | 
            -
                end
         | 
| 253 | 
            -
              end
         | 
| 233 | 
            +
            #  # bots:single
         | 
| 234 | 
            +
            #  #
         | 
| 235 | 
            +
            #  # Execute bot in same way as OpenCorporates single-record update
         | 
| 236 | 
            +
            #  #
         | 
| 237 | 
            +
            #  # $ heroku bots:single
         | 
| 238 | 
            +
            #  # Enter argument (as JSON object):
         | 
| 239 | 
            +
            #  # {"id": "frob123"}
         | 
| 240 | 
            +
            #  # {"id": "frob123", "stuff": "updated-data-for-this-record"}
         | 
| 241 | 
            +
            #
         | 
| 242 | 
            +
            #  def single
         | 
| 243 | 
            +
            #    # This will need to be language-aware, eventually
         | 
| 244 | 
            +
            #    scraper_path    = shift_argument || scraper_file(Dir.pwd)
         | 
| 245 | 
            +
            #    validate_arguments!
         | 
| 246 | 
            +
            #    print 'Arguments (as JSON object, e.g. {"id":"ABC123"}: '
         | 
| 247 | 
            +
            #    arg = ask
         | 
| 248 | 
            +
            #    count = 0
         | 
| 249 | 
            +
            #    run_scraper_each_line("#{scraper_path} #{bot} #{Shellwords.shellescape(arg)}") do |line|
         | 
| 250 | 
            +
            #      raise "Your scraper returned more than one value!" if count > 1
         | 
| 251 | 
            +
            #      puts line
         | 
| 252 | 
            +
            #      count += 1
         | 
| 253 | 
            +
            #    end
         | 
| 254 | 
            +
            #  end
         | 
| 254 255 |  | 
| 255 256 |  | 
| 256 257 | 
             
              # bots:preview
         | 
| @@ -269,14 +270,31 @@ class Turbot::Command::Bots < Turbot::Command::Base | |
| 269 270 |  | 
| 270 271 | 
             
                api.destroy_draft_data(bot)
         | 
| 271 272 |  | 
| 273 | 
            +
                type = config["data_type"]
         | 
| 274 | 
            +
                schema = get_schema(type)
         | 
| 275 | 
            +
             | 
| 272 276 | 
             
                result = ""
         | 
| 273 277 | 
             
                run_scraper_each_line("#{scraper_path} #{bot}") do |line|
         | 
| 274 | 
            -
                  batch << JSON.parse(line)
         | 
| 275 278 | 
             
                  spinner(count)
         | 
| 276 | 
            -
             | 
| 277 | 
            -
             | 
| 278 | 
            -
                     | 
| 279 | 
            +
             | 
| 280 | 
            +
                  errors = JSON::Validator.fully_validate(
         | 
| 281 | 
            +
                    schema,
         | 
| 282 | 
            +
                    line,
         | 
| 283 | 
            +
                    {:errors_as_objects => true})
         | 
| 284 | 
            +
             | 
| 285 | 
            +
                  if errors.empty?
         | 
| 286 | 
            +
                    batch << JSON.parse(line)
         | 
| 287 | 
            +
                    if count % 20 == 0
         | 
| 288 | 
            +
                      result = api.create_draft_data(bot, config, batch.to_json)
         | 
| 289 | 
            +
                      batch = []
         | 
| 290 | 
            +
                    end
         | 
| 291 | 
            +
                  else
         | 
| 292 | 
            +
                    puts "The following record was not sent to turbot because it didn't validate against the schema:"
         | 
| 293 | 
            +
                    puts line
         | 
| 294 | 
            +
                    puts "The validation error was:"
         | 
| 295 | 
            +
                    puts errors
         | 
| 279 296 | 
             
                  end
         | 
| 297 | 
            +
             | 
| 280 298 | 
             
                  count += 1
         | 
| 281 299 | 
             
                end
         | 
| 282 300 | 
             
                if !batch.empty?
         | 
    
        data/lib/turbot/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,20 +1,18 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: turbot
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.0.23
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Turbot
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2014-06- | 
| 11 | 
            +
            date: 2014-06-14 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: netrc
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 17 | 
             
                - - ~>
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -22,7 +20,6 @@ dependencies: | |
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 24 | 
             
                - - ~>
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -30,7 +27,6 @@ dependencies: | |
| 30 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 28 | 
             
              name: rest-client
         | 
| 32 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 30 | 
             
                requirements:
         | 
| 35 31 | 
             
                - - ~>
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -38,7 +34,6 @@ dependencies: | |
| 38 34 | 
             
              type: :runtime
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 38 | 
             
                - - ~>
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -46,7 +41,6 @@ dependencies: | |
| 46 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 42 | 
             
              name: launchy
         | 
| 48 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            -
                none: false
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 45 | 
             
                - - ! '>='
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -54,7 +48,6 @@ dependencies: | |
| 54 48 | 
             
              type: :runtime
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            -
                none: false
         | 
| 58 51 | 
             
                requirements:
         | 
| 59 52 | 
             
                - - ! '>='
         | 
| 60 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -62,7 +55,6 @@ dependencies: | |
| 62 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 56 | 
             
              name: rubyzip
         | 
| 64 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                none: false
         | 
| 66 58 | 
             
                requirements:
         | 
| 67 59 | 
             
                - - ! '>='
         | 
| 68 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -70,7 +62,6 @@ dependencies: | |
| 70 62 | 
             
              type: :runtime
         | 
| 71 63 | 
             
              prerelease: false
         | 
| 72 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            -
                none: false
         | 
| 74 65 | 
             
                requirements:
         | 
| 75 66 | 
             
                - - ! '>='
         | 
| 76 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -78,7 +69,6 @@ dependencies: | |
| 78 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 79 70 | 
             
              name: json-schema
         | 
| 80 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 81 | 
            -
                none: false
         | 
| 82 72 | 
             
                requirements:
         | 
| 83 73 | 
             
                - - ! '>='
         | 
| 84 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -86,7 +76,6 @@ dependencies: | |
| 86 76 | 
             
              type: :runtime
         | 
| 87 77 | 
             
              prerelease: false
         | 
| 88 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 89 | 
            -
                none: false
         | 
| 90 79 | 
             
                requirements:
         | 
| 91 80 | 
             
                - - ! '>='
         | 
| 92 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -94,7 +83,6 @@ dependencies: | |
| 94 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 95 84 | 
             
              name: activesupport
         | 
| 96 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 97 | 
            -
                none: false
         | 
| 98 86 | 
             
                requirements:
         | 
| 99 87 | 
             
                - - '='
         | 
| 100 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -102,7 +90,6 @@ dependencies: | |
| 102 90 | 
             
              type: :runtime
         | 
| 103 91 | 
             
              prerelease: false
         | 
| 104 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 105 | 
            -
                none: false
         | 
| 106 93 | 
             
                requirements:
         | 
| 107 94 | 
             
                - - '='
         | 
| 108 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -110,7 +97,6 @@ dependencies: | |
| 110 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 111 98 | 
             
              name: turbot-api
         | 
| 112 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 113 | 
            -
                none: false
         | 
| 114 100 | 
             
                requirements:
         | 
| 115 101 | 
             
                - - '='
         | 
| 116 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -118,7 +104,6 @@ dependencies: | |
| 118 104 | 
             
              type: :runtime
         | 
| 119 105 | 
             
              prerelease: false
         | 
| 120 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            -
                none: false
         | 
| 122 107 | 
             
                requirements:
         | 
| 123 108 | 
             
                - - '='
         | 
| 124 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -126,7 +111,6 @@ dependencies: | |
| 126 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 127 112 | 
             
              name: excon
         | 
| 128 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 129 | 
            -
                none: false
         | 
| 130 114 | 
             
                requirements:
         | 
| 131 115 | 
             
                - - ! '>='
         | 
| 132 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -134,7 +118,6 @@ dependencies: | |
| 134 118 | 
             
              type: :runtime
         | 
| 135 119 | 
             
              prerelease: false
         | 
| 136 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 137 | 
            -
                none: false
         | 
| 138 121 | 
             
                requirements:
         | 
| 139 122 | 
             
                - - ! '>='
         | 
| 140 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -162,13 +145,8 @@ files: | |
| 162 145 | 
             
            - lib/turbot/command/auth.rb
         | 
| 163 146 | 
             
            - lib/turbot/command/base.rb
         | 
| 164 147 | 
             
            - lib/turbot/command/bots.rb
         | 
| 165 | 
            -
            - lib/turbot/command/config.rb
         | 
| 166 148 | 
             
            - lib/turbot/command/help.rb
         | 
| 167 | 
            -
            - lib/turbot/command/keys.rb
         | 
| 168 | 
            -
            - lib/turbot/command/logs.rb
         | 
| 169 149 | 
             
            - lib/turbot/command/ssl.rb
         | 
| 170 | 
            -
            - lib/turbot/command/status.rb
         | 
| 171 | 
            -
            - lib/turbot/command/update.rb
         | 
| 172 150 | 
             
            - lib/turbot/command/version.rb
         | 
| 173 151 | 
             
            - lib/turbot/deprecated.rb
         | 
| 174 152 | 
             
            - lib/turbot/deprecated/help.rb
         | 
| @@ -183,6 +161,22 @@ files: | |
| 183 161 | 
             
            - lib/turbot/updater.rb
         | 
| 184 162 | 
             
            - lib/turbot/version.rb
         | 
| 185 163 | 
             
            - lib/vendor/turbot/okjson.rb
         | 
| 164 | 
            +
            - schema/schemas/company-schema.json
         | 
| 165 | 
            +
            - schema/schemas/includes/address.json
         | 
| 166 | 
            +
            - schema/schemas/includes/base-statement.json
         | 
| 167 | 
            +
            - schema/schemas/includes/company.json
         | 
| 168 | 
            +
            - schema/schemas/includes/filing.json
         | 
| 169 | 
            +
            - schema/schemas/includes/license-data.json
         | 
| 170 | 
            +
            - schema/schemas/includes/officer.json
         | 
| 171 | 
            +
            - schema/schemas/includes/previous_name.json
         | 
| 172 | 
            +
            - schema/schemas/includes/share-parcel-data.json
         | 
| 173 | 
            +
            - schema/schemas/includes/share-parcel.json
         | 
| 174 | 
            +
            - schema/schemas/includes/subsidiary-relationship-data.json
         | 
| 175 | 
            +
            - schema/schemas/includes/total-shares.json
         | 
| 176 | 
            +
            - schema/schemas/licence-schema.json
         | 
| 177 | 
            +
            - schema/schemas/primary-data-schema.json
         | 
| 178 | 
            +
            - schema/schemas/share-parcel-schema.json
         | 
| 179 | 
            +
            - schema/schemas/subsidiary-relationship-schema.json
         | 
| 186 180 | 
             
            - spec/helper/legacy_help.rb
         | 
| 187 181 | 
             
            - spec/helper/pg_dump_restore_spec.rb
         | 
| 188 182 | 
             
            - spec/schemas/dummy_schema.json
         | 
| @@ -216,45 +210,29 @@ files: | |
| 216 210 | 
             
            - templates/manifest.json
         | 
| 217 211 | 
             
            - templates/python/scraper.py
         | 
| 218 212 | 
             
            - templates/ruby/scraper.rb
         | 
| 219 | 
            -
            - schema/schemas/company-schema.json
         | 
| 220 | 
            -
            - schema/schemas/includes/address.json
         | 
| 221 | 
            -
            - schema/schemas/includes/base-statement.json
         | 
| 222 | 
            -
            - schema/schemas/includes/company.json
         | 
| 223 | 
            -
            - schema/schemas/includes/filing.json
         | 
| 224 | 
            -
            - schema/schemas/includes/license-data.json
         | 
| 225 | 
            -
            - schema/schemas/includes/officer.json
         | 
| 226 | 
            -
            - schema/schemas/includes/previous_name.json
         | 
| 227 | 
            -
            - schema/schemas/includes/share-parcel-data.json
         | 
| 228 | 
            -
            - schema/schemas/includes/share-parcel.json
         | 
| 229 | 
            -
            - schema/schemas/includes/subsidiary-relationship-data.json
         | 
| 230 | 
            -
            - schema/schemas/includes/total-shares.json
         | 
| 231 | 
            -
            - schema/schemas/licence-schema.json
         | 
| 232 | 
            -
            - schema/schemas/primary-data-schema.json
         | 
| 233 | 
            -
            - schema/schemas/share-parcel-schema.json
         | 
| 234 | 
            -
            - schema/schemas/subsidiary-relationship-schema.json
         | 
| 235 213 | 
             
            homepage: http://turbot.com/
         | 
| 236 214 | 
             
            licenses:
         | 
| 237 215 | 
             
            - MIT
         | 
| 216 | 
            +
            metadata: {}
         | 
| 238 217 | 
             
            post_install_message: 
         | 
| 239 218 | 
             
            rdoc_options: []
         | 
| 240 219 | 
             
            require_paths:
         | 
| 241 220 | 
             
            - lib
         | 
| 242 221 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 243 | 
            -
              none: false
         | 
| 244 222 | 
             
              requirements:
         | 
| 245 223 | 
             
              - - ! '>='
         | 
| 246 224 | 
             
                - !ruby/object:Gem::Version
         | 
| 247 225 | 
             
                  version: 1.9.2
         | 
| 248 226 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 249 | 
            -
              none: false
         | 
| 250 227 | 
             
              requirements:
         | 
| 251 228 | 
             
              - - ! '>='
         | 
| 252 229 | 
             
                - !ruby/object:Gem::Version
         | 
| 253 230 | 
             
                  version: '0'
         | 
| 254 231 | 
             
            requirements: []
         | 
| 255 232 | 
             
            rubyforge_project: 
         | 
| 256 | 
            -
            rubygems_version:  | 
| 233 | 
            +
            rubygems_version: 2.2.2
         | 
| 257 234 | 
             
            signing_key: 
         | 
| 258 | 
            -
            specification_version:  | 
| 235 | 
            +
            specification_version: 4
         | 
| 259 236 | 
             
            summary: Client library and CLI to deploy apps on Turbot.
         | 
| 260 237 | 
             
            test_files: []
         | 
| 238 | 
            +
            has_rdoc: 
         | 
| @@ -1,123 +0,0 @@ | |
| 1 | 
            -
            require "turbot/command/base"
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # manage bot config vars
         | 
| 4 | 
            -
            #
         | 
| 5 | 
            -
            class Turbot::Command::Config < Turbot::Command::Base
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              # config
         | 
| 8 | 
            -
              #
         | 
| 9 | 
            -
              # display the config vars for an bot
         | 
| 10 | 
            -
              #
         | 
| 11 | 
            -
              # -s, --shell  # output config vars in shell format
         | 
| 12 | 
            -
              #
         | 
| 13 | 
            -
              #Examples:
         | 
| 14 | 
            -
              #
         | 
| 15 | 
            -
              # $ turbot config
         | 
| 16 | 
            -
              # A: one
         | 
| 17 | 
            -
              # B: two
         | 
| 18 | 
            -
              #
         | 
| 19 | 
            -
              # $ turbot config --shell
         | 
| 20 | 
            -
              # A=one
         | 
| 21 | 
            -
              # B=two
         | 
| 22 | 
            -
              #
         | 
| 23 | 
            -
              def index
         | 
| 24 | 
            -
                validate_arguments!
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                vars = api.get_config_vars(bot)
         | 
| 27 | 
            -
                if vars.empty?
         | 
| 28 | 
            -
                  display("#{bot} has no config vars.")
         | 
| 29 | 
            -
                else
         | 
| 30 | 
            -
                  vars.each {|key, value| vars[key] = value.to_s.strip}
         | 
| 31 | 
            -
                  if options[:shell]
         | 
| 32 | 
            -
                    vars.keys.sort.each do |key|
         | 
| 33 | 
            -
                      display(%{#{key}=#{vars[key]}})
         | 
| 34 | 
            -
                    end
         | 
| 35 | 
            -
                  else
         | 
| 36 | 
            -
                    styled_header("#{bot} Config Vars")
         | 
| 37 | 
            -
                    styled_hash(vars)
         | 
| 38 | 
            -
                  end
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
             | 
| 42 | 
            -
              # config:set KEY1=VALUE1 [KEY2=VALUE2 ...]
         | 
| 43 | 
            -
              #
         | 
| 44 | 
            -
              # set one or more config vars
         | 
| 45 | 
            -
              #
         | 
| 46 | 
            -
              #Example:
         | 
| 47 | 
            -
              #
         | 
| 48 | 
            -
              # $ turbot config:set A=one
         | 
| 49 | 
            -
              # Setting config vars and restarting example... done, v123
         | 
| 50 | 
            -
              # A: one
         | 
| 51 | 
            -
              #
         | 
| 52 | 
            -
              # $ turbot config:set A=one B=two
         | 
| 53 | 
            -
              # Setting config vars and restarting example... done, v123
         | 
| 54 | 
            -
              # A: one
         | 
| 55 | 
            -
              # B: two
         | 
| 56 | 
            -
              #
         | 
| 57 | 
            -
              def set
         | 
| 58 | 
            -
                unless args.size > 0 and args.all? { |a| a.include?('=') }
         | 
| 59 | 
            -
                  error("Usage: turbot config:set KEY1=VALUE1 [KEY2=VALUE2 ...]\nMust specify KEY and VALUE to set.")
         | 
| 60 | 
            -
                end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                vars = args.inject({}) do |vars, arg|
         | 
| 63 | 
            -
                  key, value = arg.split('=', 2)
         | 
| 64 | 
            -
                  vars[key] = value
         | 
| 65 | 
            -
                  vars
         | 
| 66 | 
            -
                end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                action("Setting config vars and restarting #{bot}") do
         | 
| 69 | 
            -
                  api.put_config_vars(bot, vars)
         | 
| 70 | 
            -
                end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                vars.each {|key, value| vars[key] = value.to_s}
         | 
| 73 | 
            -
                styled_hash(vars)
         | 
| 74 | 
            -
              end
         | 
| 75 | 
            -
             | 
| 76 | 
            -
              alias_command "config:add", "config:set"
         | 
| 77 | 
            -
             | 
| 78 | 
            -
              # config:get KEY
         | 
| 79 | 
            -
              #
         | 
| 80 | 
            -
              # display a config value for an bot
         | 
| 81 | 
            -
              #
         | 
| 82 | 
            -
              #Examples:
         | 
| 83 | 
            -
              #
         | 
| 84 | 
            -
              # $ turbot config:get A
         | 
| 85 | 
            -
              # one
         | 
| 86 | 
            -
              #
         | 
| 87 | 
            -
              def get
         | 
| 88 | 
            -
                unless key = shift_argument
         | 
| 89 | 
            -
                  error("Usage: turbot config:get KEY\nMust specify KEY.")
         | 
| 90 | 
            -
                end
         | 
| 91 | 
            -
                validate_arguments!
         | 
| 92 | 
            -
             | 
| 93 | 
            -
                vars = api.get_config_vars(bot)
         | 
| 94 | 
            -
                key, value = vars.detect {|k,v| k == key}
         | 
| 95 | 
            -
                display(value.to_s)
         | 
| 96 | 
            -
              end
         | 
| 97 | 
            -
             | 
| 98 | 
            -
              # config:unset KEY1 [KEY2 ...]
         | 
| 99 | 
            -
              #
         | 
| 100 | 
            -
              # unset one or more config vars
         | 
| 101 | 
            -
              #
         | 
| 102 | 
            -
              # $ turbot config:unset A
         | 
| 103 | 
            -
              # Unsetting A and restarting example... done, v123
         | 
| 104 | 
            -
              #
         | 
| 105 | 
            -
              # $ turbot config:unset A B
         | 
| 106 | 
            -
              # Unsetting A and restarting example... done, v123
         | 
| 107 | 
            -
              # Unsetting B and restarting example... done, v124
         | 
| 108 | 
            -
              #
         | 
| 109 | 
            -
              def unset
         | 
| 110 | 
            -
                if args.empty?
         | 
| 111 | 
            -
                  error("Usage: turbot config:unset KEY1 [KEY2 ...]\nMust specify KEY to unset.")
         | 
| 112 | 
            -
                end
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                args.each do |key|
         | 
| 115 | 
            -
                  action("Unsetting #{key} and restarting #{bot}") do
         | 
| 116 | 
            -
                    api.delete_config_var(bot, key)
         | 
| 117 | 
            -
                  end
         | 
| 118 | 
            -
                end
         | 
| 119 | 
            -
              end
         | 
| 120 | 
            -
             | 
| 121 | 
            -
              alias_command "config:remove", "config:unset"
         | 
| 122 | 
            -
             | 
| 123 | 
            -
            end
         | 
    
        data/lib/turbot/command/keys.rb
    DELETED
    
    | @@ -1,115 +0,0 @@ | |
| 1 | 
            -
            require "turbot/command/base"
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module Turbot::Command
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              # manage authentication keys
         | 
| 6 | 
            -
              #
         | 
| 7 | 
            -
              class Keys < Base
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                # keys
         | 
| 10 | 
            -
                #
         | 
| 11 | 
            -
                # display keys for the current user
         | 
| 12 | 
            -
                #
         | 
| 13 | 
            -
                # -l, --long  # display extended information for each key
         | 
| 14 | 
            -
                #
         | 
| 15 | 
            -
                #Examples:
         | 
| 16 | 
            -
                #
         | 
| 17 | 
            -
                # $ turbot keys
         | 
| 18 | 
            -
                # === email@example.com Keys
         | 
| 19 | 
            -
                # ssh-rsa ABCDEFGHIJK...OPQRSTUV== email@example.com
         | 
| 20 | 
            -
                #
         | 
| 21 | 
            -
                # $ turbot keys --long
         | 
| 22 | 
            -
                # === email@example.com Keys
         | 
| 23 | 
            -
                # ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp9AJD5QABmOcrkHm6SINuQkDefaR0MUrfgZ1Pxir3a4fM1fwa00dsUwbUaRuR7FEFD8n1E9WwDf8SwQTHtyZsJg09G9myNqUzkYXCmydN7oGr5IdVhRyv5ixcdiE0hj7dRnOJg2poSQ3Qi+Ka8SVJzF7nIw1YhuicHPSbNIFKi5s0D5a+nZb/E6MNGvhxoFCQX2IcNxaJMqhzy1ESwlixz45aT72mXYq0LIxTTpoTqma1HuKdRY8HxoREiivjmMQulYP+CxXFcMyV9kxTKIUZ/FXqlC6G5vSm3J4YScSatPOj9ID5HowpdlIx8F6y4p1/28r2tTl4CY40FFyoke4MQ== email@example.com
         | 
| 24 | 
            -
                #
         | 
| 25 | 
            -
                def index
         | 
| 26 | 
            -
                  validate_arguments!
         | 
| 27 | 
            -
                  keys = api.get_keys
         | 
| 28 | 
            -
                  if keys.length > 0
         | 
| 29 | 
            -
                    styled_header("#{Turbot::Auth.user} Keys")
         | 
| 30 | 
            -
                    keys = if options[:long]
         | 
| 31 | 
            -
                      keys.map {|key| key["contents"].strip}
         | 
| 32 | 
            -
                    else
         | 
| 33 | 
            -
                      keys.map {|key| format_key_for_display(key["contents"])}
         | 
| 34 | 
            -
                    end
         | 
| 35 | 
            -
                    styled_array(keys)
         | 
| 36 | 
            -
                  else
         | 
| 37 | 
            -
                    display("You have no keys.")
         | 
| 38 | 
            -
                  end
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                # keys:add [KEY]
         | 
| 42 | 
            -
                #
         | 
| 43 | 
            -
                # add a key for the current user
         | 
| 44 | 
            -
                #
         | 
| 45 | 
            -
                # if no KEY is specified, will try to find ~/.ssh/id_[rd]sa.pub
         | 
| 46 | 
            -
                #
         | 
| 47 | 
            -
                #Examples:
         | 
| 48 | 
            -
                #
         | 
| 49 | 
            -
                # $ turbot keys:add
         | 
| 50 | 
            -
                # Could not find an existing public key.
         | 
| 51 | 
            -
                # Would you like to generate one? [Yn] y
         | 
| 52 | 
            -
                # Generating new SSH public key.
         | 
| 53 | 
            -
                # Uploading SSH public key /.ssh/id_rsa.pub... done
         | 
| 54 | 
            -
                #
         | 
| 55 | 
            -
                # $ turbot keys:add /my/key.pub
         | 
| 56 | 
            -
                # Uploading SSH public key /my/key.pub... done
         | 
| 57 | 
            -
                #
         | 
| 58 | 
            -
                def add
         | 
| 59 | 
            -
                  keyfile = shift_argument
         | 
| 60 | 
            -
                  validate_arguments!
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                  if keyfile
         | 
| 63 | 
            -
                    Turbot::Auth.associate_key(keyfile)
         | 
| 64 | 
            -
                  else
         | 
| 65 | 
            -
                    # make sure we have credentials
         | 
| 66 | 
            -
                    Turbot::Auth.get_credentials
         | 
| 67 | 
            -
                    Turbot::Auth.associate_or_generate_ssh_key
         | 
| 68 | 
            -
                  end
         | 
| 69 | 
            -
                end
         | 
| 70 | 
            -
             | 
| 71 | 
            -
                # keys:remove KEY
         | 
| 72 | 
            -
                #
         | 
| 73 | 
            -
                # remove a key from the current user
         | 
| 74 | 
            -
                #
         | 
| 75 | 
            -
                #Examples:
         | 
| 76 | 
            -
                #
         | 
| 77 | 
            -
                # $ turbot keys:remove email@example.com
         | 
| 78 | 
            -
                # Removing email@example.com SSH key... done
         | 
| 79 | 
            -
                #
         | 
| 80 | 
            -
                def remove
         | 
| 81 | 
            -
                  key = shift_argument
         | 
| 82 | 
            -
                  if key.nil? || key.empty?
         | 
| 83 | 
            -
                    error("Usage: turbot keys:remove KEY\nMust specify KEY to remove.")
         | 
| 84 | 
            -
                  end
         | 
| 85 | 
            -
                  validate_arguments!
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                  action("Removing #{key} SSH key") do
         | 
| 88 | 
            -
                    api.delete_key(key)
         | 
| 89 | 
            -
                  end
         | 
| 90 | 
            -
                end
         | 
| 91 | 
            -
             | 
| 92 | 
            -
                # keys:clear
         | 
| 93 | 
            -
                #
         | 
| 94 | 
            -
                # remove all authentication keys from the current user
         | 
| 95 | 
            -
                #
         | 
| 96 | 
            -
                #Examples:
         | 
| 97 | 
            -
                #
         | 
| 98 | 
            -
                # $ turbot keys:clear
         | 
| 99 | 
            -
                # Removing all SSH keys... done
         | 
| 100 | 
            -
                #
         | 
| 101 | 
            -
                def clear
         | 
| 102 | 
            -
                  validate_arguments!
         | 
| 103 | 
            -
             | 
| 104 | 
            -
                  action("Removing all SSH keys") do
         | 
| 105 | 
            -
                    api.delete_keys
         | 
| 106 | 
            -
                  end
         | 
| 107 | 
            -
                end
         | 
| 108 | 
            -
             | 
| 109 | 
            -
                protected
         | 
| 110 | 
            -
                  def format_key_for_display(key)
         | 
| 111 | 
            -
                    type, hex, local = key.strip.split(/\s/)
         | 
| 112 | 
            -
                    [type, hex[0,10] + '...' + hex[-10,10], local].join(' ')
         | 
| 113 | 
            -
                  end
         | 
| 114 | 
            -
              end
         | 
| 115 | 
            -
            end
         | 
    
        data/lib/turbot/command/logs.rb
    DELETED
    
    | @@ -1,34 +0,0 @@ | |
| 1 | 
            -
            require "turbot/command/base"
         | 
| 2 | 
            -
            require "turbot/helpers/log_displayer"
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            # display logs for an bot
         | 
| 5 | 
            -
            #
         | 
| 6 | 
            -
            class Turbot::Command::Logs < Turbot::Command::Base
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              # logs
         | 
| 9 | 
            -
              #
         | 
| 10 | 
            -
              # display recent log output
         | 
| 11 | 
            -
              #
         | 
| 12 | 
            -
              # -n, --num NUM        # the number of lines to display
         | 
| 13 | 
            -
              # -p, --ps PS          # only display logs from the given process
         | 
| 14 | 
            -
              # -s, --source SOURCE  # only display logs from the given source
         | 
| 15 | 
            -
              # -t, --tail           # continually stream logs
         | 
| 16 | 
            -
              #
         | 
| 17 | 
            -
              #Example:
         | 
| 18 | 
            -
              #
         | 
| 19 | 
            -
              # $ turbot logs
         | 
| 20 | 
            -
              # 2012-01-01T12:00:00+00:00 turbot[api]: Config add EXAMPLE by email@example.com
         | 
| 21 | 
            -
              # 2012-01-01T12:00:01+00:00 turbot[api]: Release v1 created by email@example.com
         | 
| 22 | 
            -
              #
         | 
| 23 | 
            -
              def index
         | 
| 24 | 
            -
                validate_arguments!
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                opts = []
         | 
| 27 | 
            -
                opts << "tail=1"                                 if options[:tail]
         | 
| 28 | 
            -
                opts << "num=#{options[:num]}"                   if options[:num]
         | 
| 29 | 
            -
                opts << "ps=#{URI.encode(options[:ps])}"         if options[:ps]
         | 
| 30 | 
            -
                opts << "source=#{URI.encode(options[:source])}" if options[:source]
         | 
| 31 | 
            -
                log_displayer = ::Turbot::Helpers::LogDisplayer.new(api, bot, opts)
         | 
| 32 | 
            -
                log_displayer.display_logs
         | 
| 33 | 
            -
              end
         | 
| 34 | 
            -
            end
         | 
| @@ -1,50 +0,0 @@ | |
| 1 | 
            -
            require "turbot/command/base"
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # check status of turbot platform
         | 
| 4 | 
            -
            #
         | 
| 5 | 
            -
            class Turbot::Command::Status < Turbot::Command::Base
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              # status
         | 
| 8 | 
            -
              #
         | 
| 9 | 
            -
              # display current status of turbot platform
         | 
| 10 | 
            -
              #
         | 
| 11 | 
            -
              #Example:
         | 
| 12 | 
            -
              #
         | 
| 13 | 
            -
              # $ turbot status
         | 
| 14 | 
            -
              # === Turbot Status
         | 
| 15 | 
            -
              # Development: No known issues at this time.
         | 
| 16 | 
            -
              # Production:  No known issues at this time.
         | 
| 17 | 
            -
              #
         | 
| 18 | 
            -
              def index
         | 
| 19 | 
            -
                validate_arguments!
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                require('excon')
         | 
| 22 | 
            -
                status = json_decode(Excon.get("http://turbot.opencorporates.com/current-status.json", :nonblock => false).body)
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                styled_header("Turbot Status")
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                status['status'].each do |key, value|
         | 
| 27 | 
            -
                  if value == 'green'
         | 
| 28 | 
            -
                    status['status'][key] = 'No known issues at this time.'
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                end
         | 
| 31 | 
            -
                styled_hash(status['status'])
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                unless status['issues'].empty?
         | 
| 34 | 
            -
                  display
         | 
| 35 | 
            -
                  status['issues'].each do |issue|
         | 
| 36 | 
            -
                    duration = time_ago(issue['created_at']).gsub(' ago', '+')
         | 
| 37 | 
            -
                    styled_header("#{issue['title']}  #{duration}")
         | 
| 38 | 
            -
                    changes = issue['updates'].map do |issue|
         | 
| 39 | 
            -
                      [
         | 
| 40 | 
            -
                        time_ago(issue['created_at']),
         | 
| 41 | 
            -
                        issue['update_type'],
         | 
| 42 | 
            -
                        issue['contents']
         | 
| 43 | 
            -
                      ]
         | 
| 44 | 
            -
                    end
         | 
| 45 | 
            -
                    styled_array(changes, :sort => false)
         | 
| 46 | 
            -
                  end
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
              end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            end
         | 
| @@ -1,47 +0,0 @@ | |
| 1 | 
            -
            require "turbot/command/base"
         | 
| 2 | 
            -
            require "turbot/updater"
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            # update the turbot client
         | 
| 5 | 
            -
            #
         | 
| 6 | 
            -
            class Turbot::Command::Update < Turbot::Command::Base
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              # update
         | 
| 9 | 
            -
              #
         | 
| 10 | 
            -
              # update the turbot client
         | 
| 11 | 
            -
              #
         | 
| 12 | 
            -
              # Example:
         | 
| 13 | 
            -
              #
         | 
| 14 | 
            -
              # $ turbot update
         | 
| 15 | 
            -
              # Updating from v1.2.3... done, updated to v2.3.4
         | 
| 16 | 
            -
              #
         | 
| 17 | 
            -
              def index
         | 
| 18 | 
            -
                validate_arguments!
         | 
| 19 | 
            -
                update_from_url("https://toolbelt.turbot.com/download/zip")
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              # update:beta
         | 
| 23 | 
            -
              #
         | 
| 24 | 
            -
              # update to the latest beta client
         | 
| 25 | 
            -
              #
         | 
| 26 | 
            -
              # $ turbot update
         | 
| 27 | 
            -
              # Updating from v1.2.3... done, updated to v2.3.4.pre
         | 
| 28 | 
            -
              #
         | 
| 29 | 
            -
              def beta
         | 
| 30 | 
            -
                validate_arguments!
         | 
| 31 | 
            -
                update_from_url("https://toolbelt.turbot.com/download/beta-zip")
         | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            private
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              def update_from_url(url)
         | 
| 37 | 
            -
                Turbot::Updater.check_disabled!
         | 
| 38 | 
            -
                action("Updating from #{Turbot::VERSION}") do
         | 
| 39 | 
            -
                  if new_version = Turbot::Updater.update(url)
         | 
| 40 | 
            -
                    status("updated to #{new_version}")
         | 
| 41 | 
            -
                  else
         | 
| 42 | 
            -
                    status("nothing to update")
         | 
| 43 | 
            -
                  end
         | 
| 44 | 
            -
                end
         | 
| 45 | 
            -
              end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            end
         |