peas-cli 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f22ef195adddaf91d900dfb57ca2fac5b0244586
4
- data.tar.gz: 15b42a3e4009b3697a4a71cb484ba6610f1a72fb
3
+ metadata.gz: c59d042fdf3940b53dedbb2f1fd06669a1f4b918
4
+ data.tar.gz: 025894d8b31e701527b681d6a6a6ac5da0bc6feb
5
5
  SHA512:
6
- metadata.gz: 3c6e24d63753037320e8f30672f8c72f0d9fb38ec1c40bfe415b59886b6743991f9a77853b02a74f731e3aead6d005fd65ee770100fe814aedf1927ff6914e7b
7
- data.tar.gz: 840321e330c30f9ef42e8ca21730b9769c0595d003cab8cc11109452c9fedeb44d6d096f24cb521c68c20e896352319d199092ecfe297b43847a295db80c13af
6
+ metadata.gz: 06c07b2f78e215dcee1c1ee0d276912dc53492cf44316143e1119996ce4a3f7ff05ac08d8e882f8f22878d75819ada585b9d6c79f6fde2180863fb6f04daece2
7
+ data.tar.gz: 76662c09241e651b1217a76b043bde13a63bb4295ef8cd01377aa04cf334f80c8376ed02087920309497d186aee1cc074e860a0ad757e02443d965339e08c770
data/Rakefile CHANGED
@@ -19,8 +19,8 @@ Jeweler::Tasks.new do |gem|
19
19
  gem.homepage = "http://github.com/tombh/peas"
20
20
  gem.license = "GPL v2"
21
21
  gem.version = Peas::VERSION
22
- gem.summary = %Q{CLI client for Peas}
23
- gem.description = %Q{Peas is an open source Heroku-style PaaS written in Ruby and using Docker}
22
+ gem.summary = "CLI client for Peas"
23
+ gem.description = "Peas is an open source Heroku-style PaaS written in Ruby and using Docker"
24
24
  gem.email = "tom@tombh.co.uk"
25
25
  gem.authors = ["Tom Buckley-Houston"]
26
26
  gem.files.include 'VERSION'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/bin/peas CHANGED
@@ -17,7 +17,7 @@ version Peas::VERSION
17
17
  # Load all the commands
18
18
  Dir["#{root_path}/lib/peas/commands/**/*.rb"].each { |f| load f }
19
19
 
20
- pre do |global, command, options, args|
20
+ pre do |_global, _command, _options, _args|
21
21
  # Pre logic here
22
22
  # Return true to proceed; false to abort and not call the
23
23
  # chosen command
@@ -26,7 +26,7 @@ pre do |global, command, options, args|
26
26
  true
27
27
  end
28
28
 
29
- post do |global, command, options, args|
29
+ post do |_global, _command, _options, _args|
30
30
  # Post logic here
31
31
  # Use skips_post before a command to skip this
32
32
  # block on that command only
@@ -36,7 +36,7 @@ on_error do |exception|
36
36
  # Show a custom error message with backtrace if it's not a GLI error
37
37
  if exception.class.to_s.split('::').first != 'GLI'
38
38
  if exception.class == Errno::ECONNREFUSED
39
- Peas.error_message "Couldn't connect to the Peas API. The current endpoint is '#{Peas.api_domain}', make " +
39
+ Peas.error_message "Couldn't connect to the Peas API. The current endpoint is '#{Peas.api_domain}', make " \
40
40
  "sure it is up and accessible."
41
41
  else
42
42
  Peas.error_message "Unexpected error: #{exception.class}"
@@ -48,7 +48,7 @@ on_error do |exception|
48
48
  end
49
49
 
50
50
  # Exit 0 if sent SIGINT
51
- trap('INT'){
51
+ trap('INT') {
52
52
  exit!
53
53
  }
54
54
 
data/lib/peas/api.rb CHANGED
@@ -13,17 +13,17 @@ class API
13
13
  end
14
14
 
15
15
  # Generic wrapper to the Peas API
16
- def request verb, method, params = nil
17
- response = self.class.send(verb, "#{method}", {query: params}).body
16
+ def request(verb, method, params = nil)
17
+ response = self.class.send(verb, "#{method}", query: params).body
18
18
  if response
19
19
  json = JSON.parse(response)
20
20
  else
21
21
  json = {}
22
22
  end
23
23
  # If there was an HTTP-level error
24
- raise json['error'].color(:red) if json.has_key? 'error'
24
+ raise json['error'].color(:red) if json.key? 'error'
25
25
  # Successful responses
26
- if json.has_key? 'job'
26
+ if json.key? 'job'
27
27
  # Long-running jobs need to stream from the Switchboard server
28
28
  API.stream_job json['job']
29
29
  else
@@ -40,8 +40,8 @@ class API
40
40
  end
41
41
  end
42
42
  if version_mismatch
43
- Peas.warning_message "Your version of the CLI client is out of date " +
44
- "(Client: #{Peas::VERSION}, API: #{json['version']}). " +
43
+ Peas.warning_message "Your version of the CLI client is out of date " \
44
+ "(Client: #{Peas::VERSION}, API: #{json['version']}). " \
45
45
  "Please update using `gem install peas-cli`."
46
46
  end
47
47
  # Normal API response
@@ -54,9 +54,9 @@ class API
54
54
  end
55
55
 
56
56
  # Stream the output of a Switchboard job
57
- def self.stream_job job
57
+ def self.stream_job(job)
58
58
  API.stream_output "subscribe.job_progress.#{job}" do |line|
59
- if line.has_key? 'status'
59
+ if line.key? 'status'
60
60
  if line['status'] == 'failed'
61
61
  raise line['body']
62
62
  elsif line['status'] == 'complete'
@@ -68,7 +68,7 @@ class API
68
68
  end
69
69
 
70
70
  # Stream data from the Switchboard server
71
- def self.stream_output switchboard_command
71
+ def self.stream_output(switchboard_command)
72
72
  socket = API.switchboard_connection
73
73
  socket.puts switchboard_command
74
74
  begin
@@ -82,5 +82,4 @@ class API
82
82
  rescue Interrupt, Errno::ECONNRESET
83
83
  end
84
84
  end
85
-
86
- end
85
+ end
@@ -1,11 +1,11 @@
1
1
  desc 'Set Peas global settings'
2
2
  command :settings do |c|
3
3
  c.flag 'domain',
4
- type: String,
5
- desc: 'The FQDN for the Peas server'
6
- c.action do |global_options, options, args|
4
+ type: String,
5
+ desc: 'The FQDN for the Peas server'
6
+ c.action do |_global_options, options, _args|
7
7
  if options['domain']
8
- if !options['domain'].start_with? 'http://'
8
+ unless options['domain'].start_with? 'http://'
9
9
  options['domain'] = "http://#{options['domain']}"
10
10
  end
11
11
  end
@@ -17,7 +17,7 @@ command :settings do |c|
17
17
  end
18
18
  # Merge existing settings with current settings
19
19
  content = Peas.config.merge(deduped).to_json
20
- File.open(Peas.config_file, 'w+'){|f| f.write(content) }
20
+ File.open(Peas.config_file, 'w+') { |f| f.write(content) }
21
21
  # Save the settings on the server as well
22
22
  @api = API.new # Refresh settings from file
23
23
  @api.request :put, '/admin/settings', options
@@ -26,8 +26,8 @@ command :settings do |c|
26
26
  end
27
27
  desc 'Display the current settings'
28
28
  c.command :display do |c|
29
- c.action do |global_options, options, args|
29
+ c.action do |_global_options, _options, _args|
30
30
  puts JSON.pretty_generate(Peas.config)
31
31
  end
32
32
  end
33
- end
33
+ end
@@ -1,15 +1,15 @@
1
1
  desc 'Create an app'
2
2
  command :create do |c|
3
- c.action do |global_options, options, args|
4
- @api.request :post, "/app/#{Git.first_sha}", {
5
- remote: Git.remote
6
- }
3
+ c.action do |_global_options, _options, _args|
4
+ @api.request :post, "/app/#{Git.first_sha}",
5
+ remote: Git.remote
6
+
7
7
  end
8
8
  end
9
9
 
10
10
  desc 'Deploy an app'
11
11
  command :deploy do |c|
12
- c.action do |global_options, options, args|
12
+ c.action do |_global_options, _options, _args|
13
13
  @api.request :get, "/app/#{Git.first_sha}/deploy"
14
14
  end
15
15
  end
@@ -19,7 +19,7 @@ long_desc <<-EOF
19
19
  For example: peas scale web=3 worker=2
20
20
  EOF
21
21
  command :scale do |c|
22
- c.action do |global_options, options, args|
22
+ c.action do |_global_options, _options, args|
23
23
  if args.length == 0
24
24
  exit_now! "Please provide scaling arguments in the form: web=3 worker=2"
25
25
  end
@@ -30,8 +30,8 @@ command :scale do |c|
30
30
  quantity = parts[1]
31
31
  scaling_hash[process_type] = quantity
32
32
  end
33
- @api.request :put, "/app/#{Git.first_sha}/scale", {
34
- scaling_hash: scaling_hash.to_json
35
- }
33
+ @api.request :put, "/app/#{Git.first_sha}/scale",
34
+ scaling_hash: scaling_hash.to_json
35
+
36
36
  end
37
- end
37
+ end
@@ -1,22 +1,22 @@
1
1
  desc 'Add, remove and list config for an app'
2
2
  command :config do |c|
3
3
  c.default_desc 'List all config'
4
- c.action do |global_options, options, args|
4
+ c.action do |_global_options, _options, _args|
5
5
  @api.request :get, "/app/#{Git.first_sha}/config"
6
6
  end
7
7
 
8
8
  c.desc 'Delete config by keys'
9
9
  c.command :rm do |sc|
10
- sc.action do |global_options, options, args|
11
- @api.request :delete, "/app/#{Git.first_sha}/config", {
12
- keys: args.to_json
13
- }
10
+ sc.action do |_global_options, _options, args|
11
+ @api.request :delete, "/app/#{Git.first_sha}/config",
12
+ keys: args.to_json
13
+
14
14
  end
15
15
  end
16
16
 
17
17
  c.desc 'Set config for an app'
18
18
  c.command :set do |sc|
19
- sc.action do |global_options, options, args|
19
+ sc.action do |_global_options, _options, args|
20
20
  if args.length == 0
21
21
  exit_now! "Please provide config in the form: FOO=BAR ENV=production"
22
22
  end
@@ -27,9 +27,9 @@ command :config do |c|
27
27
  value = parts[1]
28
28
  vars[key] = value
29
29
  end
30
- @api.request :put, "/app/#{Git.first_sha}/config", {
31
- vars: vars.to_json
32
- }
30
+ @api.request :put, "/app/#{Git.first_sha}/config",
31
+ vars: vars.to_json
32
+
33
33
  end
34
34
  end
35
35
  end
@@ -1,6 +1,6 @@
1
1
  desc 'Show logs for an app'
2
2
  command :logs do |c|
3
- c.action do |global_options, options, args|
3
+ c.action do |_global_options, _options, _args|
4
4
  API.stream_output "stream_logs.#{Git.first_sha}"
5
5
  end
6
6
  end
data/lib/peas/config.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  module Peas
2
-
3
2
  # The port for Peas' Switchboard socket server
4
3
  SWITCHBOARD_PORT = ENV['SWITCHBOARD_PORT'] || 9345
5
4
 
@@ -18,9 +17,9 @@ module Peas
18
17
  # Hierarchy of sources for the Peas API domain
19
18
  def self.api_domain
20
19
  domain = if ENV['PEAS_API_ENDPOINT']
21
- ENV['PEAS_API_ENDPOINT']
20
+ ENV['PEAS_API_ENDPOINT']
22
21
  elsif Peas.config['domain']
23
- Peas.config['domain']
22
+ Peas.config['domain']
24
23
  else
25
24
  'localhost:4000'
26
25
  end
@@ -35,12 +34,11 @@ module Peas
35
34
  URI.parse(Peas.api_domain).host
36
35
  end
37
36
 
38
- def self.error_message string
37
+ def self.error_message(string)
39
38
  puts string.color(:red)
40
39
  end
41
40
 
42
- def self.warning_message string
41
+ def self.warning_message(string)
43
42
  puts string.color(:magenta)
44
43
  end
45
-
46
- end
44
+ end
data/lib/peas/git.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Git
2
- def self.sh cmd
2
+ def self.sh(cmd)
3
3
  `#{cmd}`.strip
4
4
  end
5
5
 
@@ -14,4 +14,4 @@ class Git
14
14
  def self.first_sha
15
15
  sh 'git rev-list --max-parents=0 HEAD | head -n1'
16
16
  end
17
- end
17
+ end
data/lib/peas.rb CHANGED
@@ -6,4 +6,3 @@ require 'peas/git'
6
6
  require 'peas/api'
7
7
  require 'rainbow'
8
8
  require 'rainbow/ext/string'
9
-
data/peas-cli.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: peas-cli 0.1.2 ruby lib
5
+ # stub: peas-cli 0.1.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "peas-cli"
9
- s.version = "0.1.2"
9
+ s.version = "0.1.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Tom Buckley-Houston"]
14
- s.date = "2014-07-08"
14
+ s.date = "2014-07-11"
15
15
  s.description = "Peas is an open source Heroku-style PaaS written in Ruby and using Docker"
16
16
  s.email = "tom@tombh.co.uk"
17
17
  s.executables = ["peas"]
data/spec/cli_spec.rb CHANGED
@@ -7,7 +7,7 @@ describe 'Peas CLI' do
7
7
  allow(Git).to receive(:first_sha).and_return('fakesha')
8
8
  allow_any_instance_of(API).to receive(:sleep).and_return(nil)
9
9
  allow(Peas).to receive(:config_file).and_return('/tmp/.peas')
10
- File.delete '/tmp/.peas' if File.exists? '/tmp/.peas'
10
+ File.delete '/tmp/.peas' if File.exist? '/tmp/.peas'
11
11
  end
12
12
 
13
13
  describe 'Settings' do
@@ -17,11 +17,11 @@ describe 'Peas CLI' do
17
17
  output = cli %w(settings --domain=new-domain.com:4000)
18
18
  expect(output).to eq "\nNew settings:\n{\n \"domain\": \"http://new-domain.com:4000\"\n}\n"
19
19
  config = JSON.parse File.open('/tmp/.peas').read
20
- expect(config).to eq({"domain"=>"http://new-domain.com:4000"})
20
+ expect(config).to eq("domain" => "http://new-domain.com:4000")
21
21
  end
22
22
 
23
23
  it 'should use the domain setting' do
24
- File.open('/tmp/.peas', 'w'){|f| f.write('{"domain":"test.com"}') }
24
+ File.open('/tmp/.peas', 'w') { |f| f.write('{"domain":"test.com"}') }
25
25
  stub_request(:get, /test.com/)
26
26
  .to_return(body: response_mock(nil))
27
27
  cli %w(deploy)
data/spec/spec_helper.rb CHANGED
@@ -9,7 +9,7 @@ ENV['GLI_ENV'] = 'test'
9
9
  ROOT = File.join(File.expand_path(File.dirname(__FILE__)), '..')
10
10
  $LOAD_PATH.unshift(File.join(ROOT, 'lib'))
11
11
  TEST_DOMAIN = 'http://localhost:4000'
12
- SWITCHBOARD_TEST_PORT = 79345
12
+ SWITCHBOARD_TEST_PORT = 79_345
13
13
 
14
14
  RSpec.configure do |config|
15
15
  config.mock_with :rspec
@@ -38,7 +38,7 @@ end
38
38
 
39
39
  # Form a response as the API would. Useful as you only need to provide a string without any JSON
40
40
  # formatting
41
- def response_mock response, key=:message
41
+ def response_mock(response, key = :message)
42
42
  {
43
43
  'version' => Peas::VERSION,
44
44
  key => response
@@ -48,7 +48,7 @@ end
48
48
  # Clever little function to simulate CLI requests.
49
49
  # Usage: cli(['create', '--flag', '--switch']).
50
50
  # Output is suppressed, captured and returned.
51
- def cli args
51
+ def cli(args)
52
52
  stub_const "ARGV", args
53
53
  capture_stdout do
54
54
  ENV['GLI_DEBUG'] = 'true'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peas-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Buckley-Houston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2014-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli