taketo 0.0.10 → 0.1.0
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.
- data/Gemfile +1 -1
- data/Gemfile.lock +14 -30
- data/README.md +4 -0
- data/Rakefile +4 -8
- data/VERSION +1 -1
- data/bin/taketo +5 -5
- data/lib/taketo/config_printer_visitor.rb +6 -22
- data/lib/taketo/config_traverser.rb +4 -33
- data/lib/taketo/config_validator.rb +1 -1
- data/lib/taketo/config_visitor.rb +15 -1
- data/lib/taketo/constructs/base_construct.rb +30 -6
- data/lib/taketo/constructs/config.rb +5 -0
- data/lib/taketo/constructs/environment.rb +6 -3
- data/lib/taketo/constructs/project.rb +3 -3
- data/lib/taketo/constructs/server.rb +3 -4
- data/lib/taketo/constructs.rb +6 -1
- data/lib/taketo/destination_resolver.rb +37 -52
- data/lib/taketo/dsl.rb +6 -3
- data/lib/taketo/printer.rb +29 -0
- data/lib/taketo/ssh_config_generator_visitor.rb +8 -22
- data/spec/acceptance/command_spec.rb +20 -0
- data/spec/acceptance/config_dsl_spec.rb +277 -0
- data/spec/acceptance/config_validation_spec.rb +109 -0
- data/spec/acceptance/connect_to_server_spec.rb +60 -0
- data/spec/acceptance/error_handling_spec.rb +31 -0
- data/spec/acceptance/generate_ssh_config_spec.rb +44 -0
- data/spec/acceptance/help_spec.rb +74 -0
- data/spec/acceptance/location_spec.rb +21 -0
- data/spec/acceptance_spec_helper.rb +71 -0
- data/spec/lib/taketo/config_traverser_spec.rb +20 -33
- data/spec/lib/taketo/config_validator_spec.rb +4 -4
- data/spec/lib/taketo/config_visitor_spec.rb +0 -4
- data/spec/lib/taketo/constructs/base_construct_spec.rb +37 -5
- data/spec/lib/taketo/constructs/environment_spec.rb +1 -1
- data/spec/lib/taketo/constructs/project_spec.rb +0 -6
- data/spec/lib/taketo/constructs/server_spec.rb +1 -3
- data/spec/lib/taketo/destination_resolver_spec.rb +21 -54
- data/spec/lib/taketo/dsl_spec.rb +46 -44
- data/spec/spec_helper.rb +1 -1
- data/spec/support/helpers/construct_spec_helper.rb +29 -0
- metadata +94 -82
- data/features/commands.feature +0 -36
- data/features/config.feature +0 -177
- data/features/config_validation.feature +0 -43
- data/features/connect_to_server.feature +0 -87
- data/features/default_server_config.feature +0 -41
- data/features/error_handling.feature +0 -29
- data/features/generate_ssh_config.feature +0 -44
- data/features/help.feature +0 -76
- data/features/step_definitions/main_steps.rb +0 -16
- data/features/support/env.rb +0 -14
@@ -1,44 +0,0 @@
|
|
1
|
-
Feature:
|
2
|
-
In order to eliminate duplication between taketo config and ssh config
|
3
|
-
As a user
|
4
|
-
I want to be able to convert taketo config to ssh config
|
5
|
-
|
6
|
-
Background:
|
7
|
-
When I have the following config
|
8
|
-
"""
|
9
|
-
project :foo do
|
10
|
-
environment :bar do
|
11
|
-
server do
|
12
|
-
host "bar.foo.com"
|
13
|
-
port 5678
|
14
|
-
user "pivo"
|
15
|
-
identity_file "~/.ssh/id_rsa"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
project :baz do
|
21
|
-
environment :qux do
|
22
|
-
server :bart do
|
23
|
-
global_alias :bazqux
|
24
|
-
host "2.3.4.5"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
"""
|
29
|
-
|
30
|
-
Scenario: Generate ssh config
|
31
|
-
When I run taketo --generate-ssh-config
|
32
|
-
Then the output should contain exactly:
|
33
|
-
"""
|
34
|
-
Host bar.foo.com
|
35
|
-
Hostname bar.foo.com
|
36
|
-
Port 5678
|
37
|
-
User pivo
|
38
|
-
IdentityFile ~/.ssh/id_rsa
|
39
|
-
|
40
|
-
Host bazqux
|
41
|
-
Hostname 2.3.4.5
|
42
|
-
|
43
|
-
"""
|
44
|
-
|
data/features/help.feature
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
Feature:
|
2
|
-
In order to be able to use the tool effectively
|
3
|
-
As a user
|
4
|
-
I want to view what's set up in config quickly
|
5
|
-
|
6
|
-
Background:
|
7
|
-
When I have the following config
|
8
|
-
"""
|
9
|
-
project :foo do
|
10
|
-
environment :bar do
|
11
|
-
server do
|
12
|
-
host "1.2.3.4"
|
13
|
-
port 5678
|
14
|
-
user "pivo"
|
15
|
-
location "/var/apps/vodka"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
project :baz do
|
21
|
-
environment :qux do
|
22
|
-
server :bart do
|
23
|
-
host "2.3.4.5"
|
24
|
-
default_command :console
|
25
|
-
command :console do
|
26
|
-
execute "rails c"
|
27
|
-
end
|
28
|
-
command :killall do
|
29
|
-
execute "killall humans"
|
30
|
-
desc "Kill ALL humans"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
"""
|
36
|
-
|
37
|
-
Scenario: View full config
|
38
|
-
When I run taketo --view
|
39
|
-
Then the output should contain exactly:
|
40
|
-
"""
|
41
|
-
|
42
|
-
Project: foo
|
43
|
-
Environment: bar
|
44
|
-
Server: default
|
45
|
-
Host: 1.2.3.4
|
46
|
-
Port: 5678
|
47
|
-
User: pivo
|
48
|
-
Default location: /var/apps/vodka
|
49
|
-
Default command: bash
|
50
|
-
Environment: RAILS_ENV=bar
|
51
|
-
|
52
|
-
Project: baz
|
53
|
-
Environment: qux
|
54
|
-
Server: bart
|
55
|
-
Host: 2.3.4.5
|
56
|
-
Default command: rails c
|
57
|
-
Environment: RAILS_ENV=qux
|
58
|
-
Commands:
|
59
|
-
console
|
60
|
-
killall - Kill ALL humans
|
61
|
-
|
62
|
-
"""
|
63
|
-
|
64
|
-
Scenario: View particular server
|
65
|
-
When I run taketo --view foo:bar:default
|
66
|
-
Then the output should contain exactly:
|
67
|
-
"""
|
68
|
-
Server: default
|
69
|
-
Host: 1.2.3.4
|
70
|
-
Port: 5678
|
71
|
-
User: pivo
|
72
|
-
Default location: /var/apps/vodka
|
73
|
-
Default command: bash
|
74
|
-
Environment: RAILS_ENV=bar
|
75
|
-
|
76
|
-
"""
|
@@ -1,16 +0,0 @@
|
|
1
|
-
DEFAULT_TEST_CONFIG_PATH = "/tmp/taketo_test_cfg.rb".freeze
|
2
|
-
|
3
|
-
When /^I have the following config$/ do |config|
|
4
|
-
@config_path = DEFAULT_TEST_CONFIG_PATH
|
5
|
-
File.open(@config_path, "w") do |f|
|
6
|
-
f.write(config)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
When /^I run taketo\s?(.*)$/ do |arguments|
|
11
|
-
step "I run `taketo --config=/tmp/taketo_test_cfg.rb #{arguments}`"
|
12
|
-
end
|
13
|
-
|
14
|
-
Then /^the output should contain$/ do |expected|
|
15
|
-
assert_partial_output(expected, all_output)
|
16
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/setup'
|
3
|
-
require 'aruba/cucumber'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
ENV['PATH'] = "#{File.expand_path('../../../bin', __FILE__)}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
7
|
-
ENV['RUBYOPT'] = '-Ilib'
|
8
|
-
ENV["TAKETO_DEV"] = 'true'
|
9
|
-
|
10
|
-
After do
|
11
|
-
if defined? @config_path and File.exist?(@config_path)
|
12
|
-
FileUtils.rm(@config_path)
|
13
|
-
end
|
14
|
-
end
|