bastion-cli 0.8.0 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -8
- data/.travis.yml +8 -8
- data/Rakefile +2 -27
- data/Readme.md +5 -4
- data/bastion-cli.gemspec +16 -20
- data/bin/bastion +8 -4
- data/lib/bastion/config.rb +6 -5
- data/lib/bastion/version.rb +1 -1
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 368027cce69ffb8cc0f689ed1f9e11e8a14d1e93
|
4
|
+
data.tar.gz: 5b793260b991616d8ad6cba9f26af3f1aecdf432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09845b33382e6b3d525ec0731cdc9b85073f03e320f386ffb3dca562a91ce18e7557db0926f157e9a1e4a6be833413de20d2013c9a240266e94ca54b1ff16d92
|
7
|
+
data.tar.gz: 63280256b578dfcb0a6fe7658532df2682bd728e783e61d3a70f87462ac4043246b9e0fb8408c1a6adbdafc2909be9456d72ccab539afc0c5e45192586f679a7
|
data/.rubocop.yml
CHANGED
@@ -1,10 +1,7 @@
|
|
1
|
-
|
2
|
-
Max: 80
|
3
|
-
|
4
|
-
Style/StringLiterals:
|
1
|
+
Style/MethodMissing:
|
5
2
|
Enabled: false
|
6
3
|
|
7
|
-
Style/
|
4
|
+
Style/StringLiterals:
|
8
5
|
Enabled: false
|
9
6
|
|
10
7
|
Style/MutableConstant:
|
@@ -13,9 +10,6 @@ Style/MutableConstant:
|
|
13
10
|
Style/TrailingCommaInLiteral:
|
14
11
|
Enabled: false
|
15
12
|
|
16
|
-
Metrics/MethodLength:
|
17
|
-
Enabled: false
|
18
|
-
|
19
13
|
AllCops:
|
20
14
|
Include:
|
21
15
|
- Rakefile
|
data/.travis.yml
CHANGED
@@ -2,14 +2,14 @@ language: ruby
|
|
2
2
|
rvm:
|
3
3
|
- 1.9.3-p551
|
4
4
|
- 2.3.0
|
5
|
-
deploy:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
# deploy:
|
6
|
+
# provider: rubygems
|
7
|
+
# api_key:
|
8
|
+
# secure: a0KqUg2kBe4aVmisadDybBXbAuolX5tKtbX6YGacbjwAeOb+aoemejgRHJKg8zGOlL8FvHwSY5kER+uapQpRXKW/pZnWTYL+GjCP66iF6qfq4Pueo09J3rIT/pnWz36nfZkd2AXSdKX/UtQQxZTzRdCiglVk0jeEiIFzhxXFS2FCBUt5h2ltciU4WKS5esHvtm+EixjLLFFbatdbeVs+mhbjp2ejmOjwTAZWbjM6bScFxksRrdeQhztK7eUbM+i2DzOC26iV9ejNBjqmFtNE6GPZJ0c24KtGnmy6VwxfGS89yibNnmkGHotPYFzn2mceH75h8U00Rn1d7EdGnGlE10UqVH9lTOLqAbhhxNmBscD+19Q2SnkWZ0u0khYX0fo6BBA0Q/TPAZfg/hBjGm42DVXz1ZS5PFmEa8eEmVZ/vXG2sQGchPEwj3IQlfY/pSSlgmFReHP2VzQO8hUCC4+NquZTQ6hgltIxZiWGbBcJgnU/GeSRd78drIWpAVl8BE1dnzWkcMyT5rgekDhWX8fyiJVYYKXO446vaE0rNyjXOOP4xCRfQ/5LRtoyEQcAPpH3rcXN+iUNKEvzl/YnBLiInEDlE5R7kTxqvE82YH0i2RhGfo568fQ4YKbRjVepahb47mxR1anL56e/9aV8jz44nWcCwvg2UH0NqdXanRzd4vk=
|
9
|
+
# gem: bastion-cli
|
10
|
+
# on:
|
11
|
+
# tags: true
|
12
|
+
# repo: ptdorf/bastion-cli
|
13
13
|
notifications:
|
14
14
|
email:
|
15
15
|
- ptdorf@gmail.com
|
data/Rakefile
CHANGED
@@ -3,35 +3,10 @@ require "rubocop/rake_task"
|
|
3
3
|
|
4
4
|
RuboCop::RakeTask.new do |task|
|
5
5
|
task.options = ["-D"]
|
6
|
-
|
6
|
+
task.fail_on_error = true
|
7
7
|
end
|
8
8
|
|
9
|
-
desc "Cleans up stuff"
|
10
|
-
task :clean do
|
11
|
-
system("rm -fr pkg")
|
12
|
-
end
|
13
|
-
|
14
|
-
desc "Reinstalls"
|
15
|
-
task :reinstall do
|
16
|
-
puts "I'm going to remove this gem to install it again"
|
17
|
-
system "sudo gem uninstall -x bastion-cli"
|
18
|
-
print "Sleeping for 20 seconds"
|
19
|
-
i = 0
|
20
|
-
while i < 20
|
21
|
-
print "."
|
22
|
-
i += 1
|
23
|
-
sleep 1
|
24
|
-
end
|
25
|
-
system "sudo gem install bastion-cli"
|
26
|
-
end
|
27
|
-
|
28
|
-
task go: [
|
29
|
-
:rubocop,
|
30
|
-
:release,
|
31
|
-
:clean,
|
32
|
-
:reinstall,
|
33
|
-
]
|
34
|
-
|
35
9
|
task default: [
|
36
10
|
:rubocop,
|
11
|
+
:release,
|
37
12
|
]
|
data/Readme.md
CHANGED
@@ -4,6 +4,7 @@ Log into things through bastions.
|
|
4
4
|
|
5
5
|
|
6
6
|
[![Build Status](https://travis-ci.org/ptdorf/bastion-cli.svg?branch=master)](https://travis-ci.org/ptdorf/bastion-cli)
|
7
|
+
[![Build Status](https://app.snap-ci.com/ptdorf/bastion-cli/branch/master/build_image)](https://app.snap-ci.com/ptdorf/bastion-cli/branch/master)
|
7
8
|
[![Gem Version](https://badge.fury.io/rb/bastion-cli.svg)](https://badge.fury.io/rb/bastion-cli)
|
8
9
|
|
9
10
|
|
@@ -47,8 +48,8 @@ $ bastion tunnel
|
|
47
48
|
$ bastion tunnel 1337 --host 12.34.56.78
|
48
49
|
```
|
49
50
|
|
50
|
-
You can also set the `BASTION_HOST` environment variable
|
51
|
-
|
51
|
+
You can also set the `BASTION_HOST` environment variable to temporarily override
|
52
|
+
the saved default:
|
52
53
|
|
53
54
|
BASTION_HOST=bastion.example.com bastion ssh web.example.com
|
54
55
|
|
@@ -56,7 +57,7 @@ The pecking order is:
|
|
56
57
|
|
57
58
|
- The `--host` option
|
58
59
|
- The `BASTION_HOST` environment variable
|
59
|
-
- The user default value that lives in
|
60
|
-
- The system default value that lives in
|
60
|
+
- The user default value, that lives in `${HOME}/.bastion`
|
61
|
+
- The system default value, that lives in `/etc/bastion/bastion`
|
61
62
|
|
62
63
|
In doubt, just run `bastion host --all` to see what are your options.
|
data/bastion-cli.gemspec
CHANGED
@@ -1,26 +1,22 @@
|
|
1
|
-
|
2
|
-
$LOAD_PATH.unshift lib
|
1
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
3
2
|
|
4
|
-
require "date"
|
5
3
|
require "bastion/version"
|
6
4
|
|
7
|
-
Gem::Specification.new do |
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
spec.license = "MIT"
|
18
|
-
spec.require_paths = ["lib"]
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "bastion-cli"
|
7
|
+
s.version = Bastion::VERSION
|
8
|
+
s.summary = "Log into things through bastions"
|
9
|
+
s.description = "Log into things through bastions."
|
10
|
+
s.authors = ["ptdorf"]
|
11
|
+
s.email = ["ptdorf@gmail.com"]
|
12
|
+
s.homepage = "https://github.com/ptdorf/bastion-cli"
|
13
|
+
s.license = "MIT"
|
14
|
+
s.require_paths = ["lib"]
|
19
15
|
|
20
|
-
|
21
|
-
|
16
|
+
s.files = `git ls-files`.split $/
|
17
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename f }
|
22
18
|
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
s.add_dependency "thor"
|
20
|
+
s.add_development_dependency "rake"
|
21
|
+
s.add_development_dependency "rubocop"
|
26
22
|
end
|
data/bin/bastion
CHANGED
@@ -20,14 +20,18 @@ module Bastion
|
|
20
20
|
end
|
21
21
|
|
22
22
|
desc "host [HOST]", "Show or set the default bastion host"
|
23
|
-
option :all, type: :boolean
|
24
23
|
def host(address = nil)
|
25
24
|
config = Config.new(options)
|
26
|
-
return config.save(address) if address
|
27
|
-
return config.info if options[:all]
|
25
|
+
return puts(config.save(address)) if address
|
28
26
|
puts config.host
|
29
27
|
end
|
30
28
|
|
29
|
+
desc "info", "Show all bastion info"
|
30
|
+
def info
|
31
|
+
config = Config.new(options)
|
32
|
+
config.info
|
33
|
+
end
|
34
|
+
|
31
35
|
desc "ssh [INSTANCE]", "Logs into an instance"
|
32
36
|
def ssh(instance = nil)
|
33
37
|
config = Config.new(options)
|
@@ -43,7 +47,7 @@ module Bastion
|
|
43
47
|
end
|
44
48
|
|
45
49
|
desc "tunnel [PORT]", "Starts a new tunnel"
|
46
|
-
def tunnel(port =
|
50
|
+
def tunnel(port = 1337)
|
47
51
|
config = Config.new(options)
|
48
52
|
puts "==> Starting tunnel to host #{config.host} on port #{port}"
|
49
53
|
exec "ssh -D#{port} #{config.host}"
|
data/lib/bastion/config.rb
CHANGED
@@ -3,8 +3,8 @@ module Bastion
|
|
3
3
|
#
|
4
4
|
#
|
5
5
|
class Config
|
6
|
-
USER = "#{ENV['HOME']}/.bastion"
|
7
|
-
SYSTEM = "/etc/bastion/
|
6
|
+
USER = "#{ENV['HOME']}/.bastion/config"
|
7
|
+
SYSTEM = "/etc/bastion/config"
|
8
8
|
ENVVAR = "BASTION_HOST"
|
9
9
|
|
10
10
|
def initialize(options)
|
@@ -21,7 +21,7 @@ module Bastion
|
|
21
21
|
puts "User : #{@user}"
|
22
22
|
puts "Env : #{@env}"
|
23
23
|
puts "Option : #{@option}"
|
24
|
-
puts "
|
24
|
+
puts "Using : #{@host}"
|
25
25
|
end
|
26
26
|
|
27
27
|
def read(file, default = nil)
|
@@ -31,13 +31,14 @@ module Bastion
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def save(value)
|
34
|
-
|
34
|
+
dir = File.dirname(USER)
|
35
|
+
Dir.mkdir(dir) unless Dir.exist?(dir)
|
35
36
|
File.write USER, value
|
37
|
+
File.read USER
|
36
38
|
end
|
37
39
|
|
38
40
|
def method_missing(name)
|
39
41
|
instance_variable_get :"@#{name}"
|
40
|
-
# class_variable_get(:"@@#{name}")
|
41
42
|
end
|
42
43
|
end
|
43
44
|
end
|
data/lib/bastion/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bastion-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ptdorf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: Log into things through bastions.
|
@@ -60,9 +60,9 @@ executables:
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
-
- .gitignore
|
64
|
-
- .rubocop.yml
|
65
|
-
- .travis.yml
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rubocop.yml"
|
65
|
+
- ".travis.yml"
|
66
66
|
- Gemfile
|
67
67
|
- Rakefile
|
68
68
|
- Readme.md
|
@@ -81,17 +81,17 @@ require_paths:
|
|
81
81
|
- lib
|
82
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
|
-
- -
|
84
|
+
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0'
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.
|
94
|
+
rubygems_version: 2.6.6
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Log into things through bastions
|