bcome 0.0.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 +7 -0
- data/bin/bcome +99 -0
- data/bin/bcome-setup +43 -0
- data/documentation/configuration.md +71 -0
- data/documentation/examples/network.yml-example +57 -0
- data/documentation/examples/platform.yml-example +18 -0
- data/documentation/installation.md +35 -0
- data/documentation/usage.md +181 -0
- data/filters/ec2_filter.rb +12 -0
- data/lib/bcome.rb +9 -0
- data/lib/bcome/version.rb +3 -0
- data/lib/become_object.rb +69 -0
- data/lib/boot.rb +25 -0
- data/lib/command.rb +45 -0
- data/lib/filters/base.rb +10 -0
- data/lib/filters/ec2_filter.rb +4 -0
- data/lib/helpers/command_helper.rb +9 -0
- data/lib/helpers/environment_ssh.rb +44 -0
- data/lib/helpers/fog_helper.rb +54 -0
- data/lib/helpers/instance_command.rb +27 -0
- data/lib/helpers/instance_ssh.rb +66 -0
- data/lib/helpers/selections.rb +120 -0
- data/lib/object.rb +72 -0
- data/lib/patches/string.rb +43 -0
- data/lib/render_irb.rb +34 -0
- data/lib/scp.rb +29 -0
- data/lib/ssh.rb +49 -0
- data/lib/stack/environment.rb +117 -0
- data/lib/stack/instance.rb +92 -0
- data/lib/stack/platform.rb +62 -0
- data/lib/workspace_context.rb +36 -0
- data/patches/irb.rb +17 -0
- metadata +157 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
class ::Bcome::WorkspaceContext ## TODO Move to include
|
2
|
+
|
3
|
+
attr_reader :object
|
4
|
+
|
5
|
+
def set(object, current_object, spawn = true)
|
6
|
+
|
7
|
+
@object = object
|
8
|
+
main_context = IRB.conf[:MAIN_CONTEXT]
|
9
|
+
@object.main_context = main_context.workspace if main_context
|
10
|
+
@object.previous_workspace_object = current_object if current_object
|
11
|
+
|
12
|
+
irb = IRB::Irb.new(IRB::WorkSpace.new(@object))
|
13
|
+
|
14
|
+
# Spawn is initiated when a user wants to shift workspace context.
|
15
|
+
# We don't spawn whilst setting up the hierarchy for quick contexts
|
16
|
+
spawn_for_object(@object) if spawn
|
17
|
+
end
|
18
|
+
|
19
|
+
def spawn_for_object(object)
|
20
|
+
require 'irb/ext/multi-irb'
|
21
|
+
IRB.parse_opts_with_ignoring_script
|
22
|
+
IRB.irb nil, @object
|
23
|
+
end
|
24
|
+
|
25
|
+
def has_object?
|
26
|
+
!self.object.nil?
|
27
|
+
end
|
28
|
+
|
29
|
+
def start_prompt
|
30
|
+
::START_PROMPT
|
31
|
+
end
|
32
|
+
|
33
|
+
def irb_prompt
|
34
|
+
@object ? @object.send(:become_identifier) : start_prompt
|
35
|
+
end
|
36
|
+
end
|
data/patches/irb.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module IRB
|
2
|
+
class << self
|
3
|
+
|
4
|
+
# http://stackoverflow.com/questions/4749476/how-can-i-pass-arguments-to-irb-if-i-dont-specify-programfile
|
5
|
+
def parse_opts_with_ignoring_script
|
6
|
+
arg = ARGV.first
|
7
|
+
script = $0
|
8
|
+
parse_opts_without_ignoring_script
|
9
|
+
@CONF[:SCRIPT] = nil
|
10
|
+
set_irb_prompt(@CONF)
|
11
|
+
$0 = script
|
12
|
+
ARGV.unshift arg
|
13
|
+
end
|
14
|
+
alias_method :parse_opts_without_ignoring_script, :parse_opts
|
15
|
+
alias_method :parse_opts, :parse_opts_with_ignoring_script
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bcome
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Guillaume Roderick (Webzakimbo)
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: aws-sdk
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: colorize
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.7.7
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.7.7
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: net-scp
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.2'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 1.2.1
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '1.2'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 1.2.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rsync
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.0'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: fog
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - '='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.33.0
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.33.0
|
89
|
+
description: Provides a console interface for traversing a hierarchy of platforms
|
90
|
+
-> environment -> servers, and exposes common administration tools for the managemenent
|
91
|
+
either of individual servers, or groups or servers. System is driven from simple
|
92
|
+
configuration, and is extensible. Integrates with AWS EC2 for dynamic network discovery.
|
93
|
+
email:
|
94
|
+
- guillaume@webzakimbo.com
|
95
|
+
executables:
|
96
|
+
- bcome
|
97
|
+
- bcome-setup
|
98
|
+
extensions: []
|
99
|
+
extra_rdoc_files: []
|
100
|
+
files:
|
101
|
+
- bin/bcome
|
102
|
+
- bin/bcome-setup
|
103
|
+
- documentation/configuration.md
|
104
|
+
- documentation/examples/network.yml-example
|
105
|
+
- documentation/examples/platform.yml-example
|
106
|
+
- documentation/installation.md
|
107
|
+
- documentation/usage.md
|
108
|
+
- filters/ec2_filter.rb
|
109
|
+
- lib/bcome.rb
|
110
|
+
- lib/bcome/version.rb
|
111
|
+
- lib/become_object.rb
|
112
|
+
- lib/boot.rb
|
113
|
+
- lib/command.rb
|
114
|
+
- lib/filters/base.rb
|
115
|
+
- lib/filters/ec2_filter.rb
|
116
|
+
- lib/helpers/command_helper.rb
|
117
|
+
- lib/helpers/environment_ssh.rb
|
118
|
+
- lib/helpers/fog_helper.rb
|
119
|
+
- lib/helpers/instance_command.rb
|
120
|
+
- lib/helpers/instance_ssh.rb
|
121
|
+
- lib/helpers/selections.rb
|
122
|
+
- lib/object.rb
|
123
|
+
- lib/patches/string.rb
|
124
|
+
- lib/render_irb.rb
|
125
|
+
- lib/scp.rb
|
126
|
+
- lib/ssh.rb
|
127
|
+
- lib/stack/environment.rb
|
128
|
+
- lib/stack/instance.rb
|
129
|
+
- lib/stack/platform.rb
|
130
|
+
- lib/workspace_context.rb
|
131
|
+
- patches/irb.rb
|
132
|
+
homepage: https://github.com/webzakimbo/bcome
|
133
|
+
licenses:
|
134
|
+
- MIT
|
135
|
+
metadata: {}
|
136
|
+
post_install_message:
|
137
|
+
rdoc_options: []
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
- lib/stack
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.2.2
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: Toolkit for managing servers & organising the management of servers
|
157
|
+
test_files: []
|