utils 0.0.99 → 0.0.100
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/chroot-libs +5 -1
- data/bin/ssh-tunnel +59 -40
- data/lib/utils.rb +1 -0
- data/lib/utils/config/config_file.rb +2 -0
- data/lib/utils/ssh_tunnel_specification.rb +47 -0
- data/lib/utils/version.rb +2 -2
- data/utils.gemspec +11 -11
- metadata +26 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 480fb60da986380af2ebf724286e23f377893db2
|
4
|
+
data.tar.gz: b8094ae10a9b048bf1893e23c79f9556547de534
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41259059f1493fd2994f111dde35371edf43e3a2584766d04f150eaab1dce7fdb4677059b14c156cc3f8c410945dcc294ee57e0aa6afea3750485b44671332f2
|
7
|
+
data.tar.gz: ba71dc743cae3e3ba21fb1a3c32c384855a44006111edeb4c3a883e4391f6af314042822853ef25244e25d07a9c905a29f9b97c0692b979acb70eb502e2ae50b
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ GemHadar do
|
|
12
12
|
bindir 'bin'
|
13
13
|
executables Dir['bin/*'].map(&File.method(:basename))
|
14
14
|
test_dir 'tests'
|
15
|
-
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble', 'tags'
|
15
|
+
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble', 'tags', '.bundle'
|
16
16
|
readme 'README.rdoc'
|
17
17
|
|
18
18
|
dependency 'tins', '~>0.8', '>=0.8.3'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.100
|
data/bin/chroot-libs
CHANGED
data/bin/ssh-tunnel
CHANGED
@@ -2,9 +2,13 @@
|
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
include FileUtils::Verbose
|
5
|
-
require 'tins/
|
5
|
+
require 'tins/xt'
|
6
6
|
include Tins::GO
|
7
7
|
require 'utils'
|
8
|
+
require 'pstree'
|
9
|
+
require 'term/ansicolor'
|
10
|
+
include Term::ANSIColor
|
11
|
+
Term::ANSIColor.coloring = STDOUT.tty?
|
8
12
|
|
9
13
|
SSH_CONFIG = <<SSH_CONFIG_END
|
10
14
|
# ~/.ssh/config
|
@@ -20,31 +24,52 @@ def usage
|
|
20
24
|
Usage: #{File.basename($0)} [OPTS] [user@]remote[:port]"
|
21
25
|
|
22
26
|
OPTS is one of
|
23
|
-
-N
|
24
|
-
-n NAME
|
25
|
-
-
|
26
|
-
-
|
27
|
-
-
|
28
|
-
-
|
29
|
-
-
|
27
|
+
-N list all session names on the specified remote
|
28
|
+
-n NAME name of the multiplexer session (default: $USER)
|
29
|
+
-T list current tunnels
|
30
|
+
-e VARIABLE=VALUE [...] set variables to values
|
31
|
+
-t [LHOST:][LPORT:][HOST:PORT|PORT] host:port to tunnel if different from LOCALPORT
|
32
|
+
-m screen|tmux use sshscreen or tmux as a terminal multiplexer
|
33
|
+
-C (ssh|rc)-default|rc output ssh or rc config file
|
34
|
+
-d enable debugging
|
35
|
+
-h to display this help
|
30
36
|
|
31
37
|
EOT
|
32
38
|
exit 1
|
33
39
|
end
|
34
40
|
|
41
|
+
def cmd(string)
|
42
|
+
$DEBUG and warn "Executing: #{string.inspect}"
|
43
|
+
exec string
|
44
|
+
end
|
45
|
+
|
35
46
|
config = Utils::Config::ConfigFile.new
|
36
47
|
|
37
48
|
arguments = ARGV
|
38
|
-
opts = go '
|
49
|
+
opts = go 't:n:C:m:e:hNTd', arguments
|
50
|
+
|
51
|
+
$DEBUG = opts['d']
|
52
|
+
|
53
|
+
if opts['T']
|
54
|
+
tunnels = PSTree.new.select { |pt| pt.user == ENV['USER'] && pt.cmd =~ /ssh.*-L/ }
|
55
|
+
tunnels.map! do |pt|
|
56
|
+
cmd = pt.cmd
|
57
|
+
cmd.gsub!(/(?<=\s)[^\/\s]+@\S+/) { |t| red(t) }
|
58
|
+
cmd.gsub!(/-L\s+\S+/) { |t| green(t) }
|
59
|
+
"#{yellow(pt.pid.to_s)} #{cmd}"
|
60
|
+
end
|
61
|
+
STDOUT.puts tunnels
|
62
|
+
exit 0
|
63
|
+
end
|
39
64
|
|
40
65
|
case opts['C']
|
41
66
|
when 'ssh-default'
|
42
|
-
puts SSH_CONFIG; exit
|
67
|
+
STDOUT.puts SSH_CONFIG; exit
|
43
68
|
when 'rc-default'
|
44
|
-
puts config.to_ruby; exit
|
69
|
+
STDOUT.puts config.to_ruby; exit
|
45
70
|
when 'rc'
|
46
71
|
config.configure_from_paths
|
47
|
-
puts config.to_ruby; exit
|
72
|
+
STDOUT.puts config.to_ruby; exit
|
48
73
|
end
|
49
74
|
|
50
75
|
config.configure_from_paths
|
@@ -58,26 +83,13 @@ end
|
|
58
83
|
user_remote = arguments.shift
|
59
84
|
user, remote, rport =
|
60
85
|
case user_remote
|
61
|
-
when /\A(?:([^@:]+)@)?([^@:]+)(?::(\d+))?\
|
86
|
+
when /\A(?:([^@:]+)@)?([^@:]+)(?::(\d+))?\z/
|
62
87
|
user = $1 || ENV['USER']
|
63
88
|
user.to_s.empty? and fail "user required to login"
|
64
89
|
[ user, $2, $3 || '22' ]
|
65
90
|
else
|
66
91
|
usage
|
67
92
|
end
|
68
|
-
lport = opts['l']
|
69
|
-
tunnel, tport = nil, nil
|
70
|
-
if tunnel_port = opts['t']
|
71
|
-
case tunnel_port
|
72
|
-
when /\A([^:]+)(?::(\d+))?\Z/
|
73
|
-
tunnel, tport = $1, $2 || '22'
|
74
|
-
lport ||= tport
|
75
|
-
else
|
76
|
-
usage
|
77
|
-
end
|
78
|
-
else
|
79
|
-
tunnel, tport = 'localhost', lport
|
80
|
-
end
|
81
93
|
|
82
94
|
ssh_dir = File.expand_path('~/.ssh')
|
83
95
|
mkdir_p ssh_dir
|
@@ -88,23 +100,30 @@ else
|
|
88
100
|
opts['n'] ||= 'session'
|
89
101
|
end
|
90
102
|
if opts['N']
|
91
|
-
|
103
|
+
cmd "ssh -p #{rport} -S #{sock_file} #{user}@#{remote} #{config.ssh_tunnel.multiplexer_list}"
|
92
104
|
else
|
93
|
-
env = []
|
94
105
|
File.exist? sock_file and rm_f sock_file
|
95
|
-
|
106
|
+
env, tunnels = [], []
|
107
|
+
config.ssh_tunnel.copy_paste.full? do |t|
|
96
108
|
env << "COPY_REMOTE_HOST_PORT='#{t.bind_address}:#{t.port}'"
|
97
|
-
"
|
109
|
+
tunnels << "-R #{t}"
|
98
110
|
end
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
"#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
|
111
|
+
opts['t'].to_a.each do |tunnel_spec|
|
112
|
+
if arg = Utils::SshTunnelSpecification.new(tunnel_spec).valid?
|
113
|
+
tunnels << "-L #{arg}"
|
114
|
+
else
|
115
|
+
usage
|
116
|
+
end
|
117
|
+
end
|
118
|
+
config.ssh_tunnel.env.each do |var, val|
|
119
|
+
ENV[var.to_s] = val.to_s
|
109
120
|
end
|
121
|
+
opts['e'].to_a.each do |setting|
|
122
|
+
var, val = setting.split('=', 2)
|
123
|
+
ENV[var] = val
|
124
|
+
end
|
125
|
+
cmd "ssh -p #{rport} -Mt "\
|
126
|
+
"-S #{sock_file} #{user}@#{remote} #{tunnels * ' '} "\
|
127
|
+
"'env #{env * ' '} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
|
128
|
+
"#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
|
110
129
|
end
|
data/lib/utils.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
module Utils
|
2
|
+
class SshTunnelSpecification
|
3
|
+
def initialize(spec_string)
|
4
|
+
interpret_spec(spec_string)
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_reader :local_addr
|
8
|
+
|
9
|
+
attr_reader :local_port
|
10
|
+
|
11
|
+
attr_reader :remote_addr
|
12
|
+
|
13
|
+
attr_reader :remote_port
|
14
|
+
|
15
|
+
def to_a
|
16
|
+
[ local_addr, local_port, remote_addr, remote_port ]
|
17
|
+
end
|
18
|
+
|
19
|
+
def valid?
|
20
|
+
if to_a.all?
|
21
|
+
to_s
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
to_a * ':'
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def interpret_spec(spec_string)
|
32
|
+
@local_addr, @local_port, @remote_addr, @remote_port =
|
33
|
+
case spec_string
|
34
|
+
when /\A(\d+)\z/
|
35
|
+
[ 'localhost', $1.to_i, 'localhost', $1.to_i ]
|
36
|
+
when /\A(\[[^\]]+\]|[^:]+):(\d+)\z/
|
37
|
+
[ 'localhost', $2.to_i, $1, $2.to_i ]
|
38
|
+
when /\A(\d+):(\[[^\]]+\]|[^:]+):(\d+)\z/
|
39
|
+
[ 'localhost', $1.to_i, $2, $3.to_i ]
|
40
|
+
when /\A(\[[^\]]+\]|[^:]+):(\[[^\]]+\]|[^:]+):(\d+)\z/
|
41
|
+
[ $1, $3.to_i, $2, $3.to_i ]
|
42
|
+
when /\A(\[[^\]]+\]|[^:]+):(\d+):(\[[^\]]+\]|[^:]+):(\d+)\z/
|
43
|
+
[ $1, $2.to_i, $3, $4.to_i ]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/utils/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Utils
|
2
2
|
# Utils version
|
3
|
-
VERSION = '0.0.
|
4
|
-
VERSION_ARRAY = VERSION.split(
|
3
|
+
VERSION = '0.0.100'
|
4
|
+
VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
|
5
5
|
VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
|
6
6
|
VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
|
7
7
|
VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
|
data/utils.gemspec
CHANGED
@@ -1,36 +1,36 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: utils 0.0.
|
2
|
+
# stub: utils 0.0.100 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "utils"
|
6
|
-
s.version = "0.0.
|
6
|
+
s.version = "0.0.100"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
|
+
s.require_paths = ["lib"]
|
9
10
|
s.authors = ["Florian Frank"]
|
10
|
-
s.date = "
|
11
|
+
s.date = "2014-01-30"
|
11
12
|
s.description = "This ruby gem provides some useful command line utilities"
|
12
13
|
s.email = "flori@ping.de"
|
13
|
-
s.executables = ["
|
14
|
-
s.extra_rdoc_files = ["README.rdoc", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/version.rb"]
|
15
|
-
s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/same_files", "bin/search", "bin/sedit", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/version.rb", "utils.gemspec"]
|
14
|
+
s.executables = ["create_tags", "untest", "chroot-libs", "edit_wait", "chroot-exec", "irb_connect", "number_files", "search", "strip_spaces", "path", "enum", "brakeman2err", "edit", "git-empty", "classify", "utils-install-config", "xmp", "discover", "ssh-tunnel", "myex", "probe", "remote_copy", "errf", "same_files", "utils-utilsrc", "unquarantine_apps", "vacuum_firefox_sqlite", "on_change", "sedit"]
|
15
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb"]
|
16
|
+
s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/same_files", "bin/search", "bin/sedit", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb", "utils.gemspec"]
|
16
17
|
s.homepage = "http://github.com/flori/utils"
|
17
18
|
s.rdoc_options = ["--title", "Utils - Some useful command line utilities", "--main", "README.rdoc"]
|
18
|
-
s.
|
19
|
-
s.rubygems_version = "2.1.5"
|
19
|
+
s.rubygems_version = "2.2.1"
|
20
20
|
s.summary = "Some useful command line utilities"
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
23
23
|
s.specification_version = 4
|
24
24
|
|
25
25
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
-
s.add_development_dependency(%q<gem_hadar>, ["~> 0.
|
26
|
+
s.add_development_dependency(%q<gem_hadar>, ["~> 0.3.2"])
|
27
27
|
s.add_runtime_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
|
28
28
|
s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
|
29
29
|
s.add_runtime_dependency(%q<dslkit>, ["~> 0.2.10"])
|
30
30
|
s.add_runtime_dependency(%q<pstree>, [">= 0"])
|
31
31
|
s.add_runtime_dependency(%q<pry-editline>, [">= 0"])
|
32
32
|
else
|
33
|
-
s.add_dependency(%q<gem_hadar>, ["~> 0.
|
33
|
+
s.add_dependency(%q<gem_hadar>, ["~> 0.3.2"])
|
34
34
|
s.add_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
|
35
35
|
s.add_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
|
36
36
|
s.add_dependency(%q<dslkit>, ["~> 0.2.10"])
|
@@ -38,7 +38,7 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.add_dependency(%q<pry-editline>, [">= 0"])
|
39
39
|
end
|
40
40
|
else
|
41
|
-
s.add_dependency(%q<gem_hadar>, ["~> 0.
|
41
|
+
s.add_dependency(%q<gem_hadar>, ["~> 0.3.2"])
|
42
42
|
s.add_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
|
43
43
|
s.add_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
|
44
44
|
s.add_dependency(%q<dslkit>, ["~> 0.2.10"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.100
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Frank
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_hadar
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.3.2
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.3.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tins
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,35 +109,35 @@ dependencies:
|
|
109
109
|
description: This ruby gem provides some useful command line utilities
|
110
110
|
email: flori@ping.de
|
111
111
|
executables:
|
112
|
-
- brakeman2err
|
113
|
-
- chroot-exec
|
114
|
-
- chroot-libs
|
115
|
-
- classify
|
116
112
|
- create_tags
|
117
|
-
-
|
118
|
-
-
|
113
|
+
- untest
|
114
|
+
- chroot-libs
|
119
115
|
- edit_wait
|
120
|
-
-
|
121
|
-
- errf
|
122
|
-
- git-empty
|
116
|
+
- chroot-exec
|
123
117
|
- irb_connect
|
124
|
-
- myex
|
125
118
|
- number_files
|
126
|
-
-
|
119
|
+
- search
|
120
|
+
- strip_spaces
|
127
121
|
- path
|
122
|
+
- enum
|
123
|
+
- brakeman2err
|
124
|
+
- edit
|
125
|
+
- git-empty
|
126
|
+
- classify
|
127
|
+
- utils-install-config
|
128
|
+
- xmp
|
129
|
+
- discover
|
130
|
+
- ssh-tunnel
|
131
|
+
- myex
|
128
132
|
- probe
|
129
133
|
- remote_copy
|
134
|
+
- errf
|
130
135
|
- same_files
|
131
|
-
- search
|
132
|
-
- sedit
|
133
|
-
- ssh-tunnel
|
134
|
-
- strip_spaces
|
135
|
-
- unquarantine_apps
|
136
|
-
- untest
|
137
|
-
- utils-install-config
|
138
136
|
- utils-utilsrc
|
137
|
+
- unquarantine_apps
|
139
138
|
- vacuum_firefox_sqlite
|
140
|
-
-
|
139
|
+
- on_change
|
140
|
+
- sedit
|
141
141
|
extensions: []
|
142
142
|
extra_rdoc_files:
|
143
143
|
- README.rdoc
|
@@ -152,6 +152,7 @@ extra_rdoc_files:
|
|
152
152
|
- lib/utils/md5.rb
|
153
153
|
- lib/utils/patterns.rb
|
154
154
|
- lib/utils/probe_server.rb
|
155
|
+
- lib/utils/ssh_tunnel_specification.rb
|
155
156
|
- lib/utils/version.rb
|
156
157
|
files:
|
157
158
|
- .gitignore
|
@@ -209,6 +210,7 @@ files:
|
|
209
210
|
- lib/utils/md5.rb
|
210
211
|
- lib/utils/patterns.rb
|
211
212
|
- lib/utils/probe_server.rb
|
213
|
+
- lib/utils/ssh_tunnel_specification.rb
|
212
214
|
- lib/utils/version.rb
|
213
215
|
- utils.gemspec
|
214
216
|
homepage: http://github.com/flori/utils
|
@@ -234,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
236
|
version: '0'
|
235
237
|
requirements: []
|
236
238
|
rubyforge_project:
|
237
|
-
rubygems_version: 2.1
|
239
|
+
rubygems_version: 2.2.1
|
238
240
|
signing_key:
|
239
241
|
specification_version: 4
|
240
242
|
summary: Some useful command line utilities
|