contexto 0.2.3 → 0.2.4

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: 4ed0dae3dc6d2cc4a7cc2a86aa43e8909b186296
4
- data.tar.gz: cd7ea8c368ed15eec74cb753fccbbd4f9595d468
3
+ metadata.gz: 490c0e22ac549bef652ed2eeee1fd5a24ff596a4
4
+ data.tar.gz: 1ddb6fb3a4761d10558273b97802437f5dd40f8e
5
5
  SHA512:
6
- metadata.gz: e72fb0a5c18b599a78b234aa3fa4241236f9db916783e2cc5db0f71256b006798c9fe7bf197f585b28ec483cce8962abb1528232db4ed3c6c528e8de3b8e13b1
7
- data.tar.gz: 562dce25640cc188a5c4ef3e23b81c41d3be6c72a8bbf9a3613823f68c8f42e7b4262f452f1180990cd5048c49460ee37258158247610d11a804fccda629b851
6
+ metadata.gz: b0b59244e318aa403fdcda073a386246eb90d9d14668a47154c9e0758cccdc2ca6854578a4bb52dc6eb4f22d2c820790a2f38fce1d5db8e116157562ff448437
7
+ data.tar.gz: '04383e7cd14cee2be6114aae03b67cf7a806198326e2a246775db1a70e9d41de973d1b64ec238919d7387228c83c1a3407fbf2ba60bf6874ab6aa47836788505'
data/README.md CHANGED
@@ -68,7 +68,19 @@ Containers
68
68
 
69
69
  ### SSH
70
70
 
71
- You can also get Contexto to connect via SSH to a Rails console or run a `rake` task.
71
+ You can also get Contexto to connect via SSH to a Bash shell, Rails console or run a `rake` task.
72
+
73
+ #### Bash shell on container
74
+
75
+ To connect to a Bash shell in a specific container, specify the cluster, service and container and the `--bash` flag.
76
+
77
+ ```shell
78
+ $ contexto -c sandbox -s backend-app -t app --bash
79
+
80
+ ** Contexto Contextualizes **
81
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
82
+ circleci@4e65666c9414:/usr/src/app$
83
+ ```
72
84
 
73
85
  #### Rails console
74
86
 
data/bin/contexto CHANGED
@@ -11,7 +11,8 @@ require 'English'
11
11
  $stderr.sync = true
12
12
 
13
13
  options = {}
14
- options[:console] = false
14
+ options[:console] = false
15
+ options[:bash] = false
15
16
  options[:ssh] = false
16
17
 
17
18
  optparse = OptionParser.new do |opts|
@@ -21,6 +22,7 @@ optparse = OptionParser.new do |opts|
21
22
  opts.on('-t', '--container CONTAINER', 'Container') { |v| options[:container] = v }
22
23
  opts.on('-r', '--rake COMMAND', 'Rake command') { |v| options[:rake] = v }
23
24
  opts.on('-b', '--console') { options[:console] = true }
25
+ opts.on('-e', '--bash') { options[:bash] = true }
24
26
  opts.on('-f', '--ssh') { options[:ssh] = true }
25
27
  end
26
28
 
@@ -4,7 +4,7 @@ require 'aws-sdk'
4
4
  module Contexto
5
5
  # ECS class
6
6
  class Contextualize
7
- attr_reader :display, :cluster, :service, :container, :console, :ssh, :rake
7
+ attr_reader :display, :cluster, :service, :container, :console, :bash, :ssh, :rake
8
8
 
9
9
  def initialize(params = {})
10
10
  @cluster = params.fetch(:cluster) if params[:cluster]
@@ -12,6 +12,7 @@ module Contexto
12
12
  @container = params.fetch(:container) if params[:container]
13
13
  @rake = params.fetch(:rake) if params[:rake]
14
14
  @console = params.fetch(:console)
15
+ @bash = params.fetch(:bash)
15
16
  @ssh = params.fetch(:ssh)
16
17
  @display = Contexto::Display.new
17
18
  end
@@ -23,6 +24,8 @@ module Contexto
23
24
  @connection = Contexto::SSH.new(describe_instances(ec2_instance_id), cluster, service, container)
24
25
  if console
25
26
  @connection.console
27
+ elsif bash
28
+ @connection.bash
26
29
  elsif ssh
27
30
  @connection.ssh
28
31
  elsif rake
@@ -50,7 +53,7 @@ module Contexto
50
53
  private
51
54
 
52
55
  def connect?
53
- (console || ssh || rake)
56
+ (console || bash || ssh || rake)
54
57
  end
55
58
 
56
59
  def show_clusters
data/lib/contexto/ssh.rb CHANGED
@@ -3,7 +3,7 @@ module Contexto
3
3
  # SSH class
4
4
  class SSH
5
5
  attr_reader :ipaddress, :cluster, :service, :container
6
-
6
+
7
7
  def initialize(ipaddress, cluster, service, container)
8
8
  @ipaddress = ipaddress
9
9
  @cluster = cluster
@@ -16,7 +16,7 @@ module Contexto
16
16
  end
17
17
 
18
18
  def console
19
- exec "#{ssh_cmd} #{cmd} c'\""
19
+ exec "#{ssh_cmd} #{cmd} bin/rails c'\""
20
20
  end
21
21
 
22
22
  def ssh
@@ -24,7 +24,11 @@ module Contexto
24
24
  end
25
25
 
26
26
  def rake(rake_cmd)
27
- exec "#{cmd} #{rake_cmd}'\""
27
+ exec "#{ssh_cmd} #{cmd} #{rake_cmd}'\""
28
+ end
29
+
30
+ def bash
31
+ exec "#{ssh_cmd} #{cmd} /bin/bash'\""
28
32
  end
29
33
 
30
34
  def ssh_cmd
@@ -32,7 +36,7 @@ module Contexto
32
36
  end
33
37
 
34
38
  def cmd
35
- "'docker exec -it \\$(docker ps | grep ecs-#{cluster}-#{service}-.*-#{container} | cut -d\\ -f1) bin/rails "
39
+ "'docker exec -it \\$(docker ps | grep ecs-#{cluster}-#{service}-.*-#{container} | cut -d\\ -f1) "
36
40
  end
37
41
  end
38
42
  end
@@ -1,4 +1,4 @@
1
1
  # Contexto version
2
2
  module Contexto
3
- VERSION = '0.2.3'.freeze
3
+ VERSION = '0.2.4'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contexto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Turnbull
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-02 00:00:00.000000000 Z
11
+ date: 2017-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  requirements: []
155
155
  rubyforge_project:
156
- rubygems_version: 2.5.2
156
+ rubygems_version: 2.6.11
157
157
  signing_key:
158
158
  specification_version: 4
159
159
  summary: Shows you context for ECS services and containers.