peas-cli 0.1.2 → 0.1.3

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 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