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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67939ce99b900f52e390e0a417750092cc04877f
4
- data.tar.gz: acfd86203297a5c4a7e2a216035d37c34c0b2457
3
+ metadata.gz: 480fb60da986380af2ebf724286e23f377893db2
4
+ data.tar.gz: b8094ae10a9b048bf1893e23c79f9556547de534
5
5
  SHA512:
6
- metadata.gz: 76e4fa870b13bce0fe920dea5516c57ad42b1e9a8f5ac0e27e74193c6b269d9e7e62abf3091b925348bb940a65b88b41bb6ea29d13635358fa695c6951a78efe
7
- data.tar.gz: 090fcc6f5f80202a1225abef6f87103a67acc17b9173742a72012403d975cc69a7f6735ac743e9b3368835d596c369000e304ce80465e37b0c5b5333ce58b1bf
6
+ metadata.gz: 41259059f1493fd2994f111dde35371edf43e3a2584766d04f150eaab1dce7fdb4677059b14c156cc3f8c410945dcc294ee57e0aa6afea3750485b44671332f2
7
+ data.tar.gz: ba71dc743cae3e3ba21fb1a3c32c384855a44006111edeb4c3a883e4391f6af314042822853ef25244e25d07a9c905a29f9b97c0692b979acb70eb502e2ae50b
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  .*.sw[pon]
2
2
  .AppleDouble
3
+ .bundle
3
4
  .rvmrc
4
5
  Gemfile.lock
5
6
  pkg
data/Gemfile CHANGED
@@ -5,5 +5,5 @@ source 'https://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  group :developer do
8
- gem 'debugger', :platform => :ruby_19
8
+ gem 'byebug', :platform => :ruby
9
9
  end
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.99
1
+ 0.0.100
data/bin/chroot-libs CHANGED
@@ -17,6 +17,10 @@ libs.concat ARGV
17
17
  cd dir do
18
18
  cp executable, File.basename(executable)
19
19
  for l in libs
20
- cp l, File.basename(l)
20
+ begin
21
+ cp l, File.basename(l)
22
+ rescue Errno::ENOENT => e
23
+ warn "Caught #{e.class}: #{e}"
24
+ end
21
25
  end
22
26
  end
data/bin/ssh-tunnel CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  require 'fileutils'
4
4
  include FileUtils::Verbose
5
- require 'tins/go'
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 list all session names on the specified remote
24
- -n NAME name of the multiplexer session to attach to (defaults to $USER)
25
- -t [HOST[:PORT]] host:port to tunnel if different from LOCALPORT
26
- -m screen|tmux use sshscreen or tmux as a terminal multiplexer
27
- -l LOCALPORT the localport to forward to
28
- -C (ssh|rc)-default|rc output ssh or rc config file
29
- -h to display this help
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 'l:t:n:C:m:hN', arguments
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+))?\Z/
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
- exec "ssh -p #{rport} -S #{sock_file} #{user}@#{remote} #{config.ssh_tunnel.multiplexer_list}"
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
- r = config.ssh_tunnel.copy_paste.full? do |t|
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
- " -R #{t}"
109
+ tunnels << "-R #{t}"
98
110
  end
99
- env *= ' '
100
- if lport
101
- exec "ssh -p #{rport} -Mt -L localhost:#{lport}:#{tunnel}:#{tport}#{r} "\
102
- "-S #{sock_file} #{user}@#{remote} "\
103
- "'env #{env} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
104
- "#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
105
- else
106
- exec "ssh -p #{rport} -Mt -S #{sock_file} #{user}@#{remote}#{r} "\
107
- "'env #{env} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
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
@@ -9,4 +9,5 @@ module Utils
9
9
  require 'utils/finder'
10
10
  require 'utils/grepper'
11
11
  require 'utils/probe_server'
12
+ require 'utils/ssh_tunnel_specification'
12
13
  end
@@ -156,6 +156,8 @@ class Utils::Config::ConfigFile
156
156
  class SshTunnel < BlockConfig
157
157
  config :terminal_multiplexer, 'screen'
158
158
 
159
+ config :env, {}
160
+
159
161
  def initialize
160
162
  super
161
163
  self.terminal_multiplexer = terminal_multiplexer
@@ -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.99'
4
- VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
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.99 ruby lib
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.99"
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 = "2013-10-09"
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 = ["brakeman2err", "chroot-exec", "chroot-libs", "classify", "create_tags", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "irb_connect", "myex", "number_files", "on_change", "path", "probe", "remote_copy", "same_files", "search", "sedit", "ssh-tunnel", "strip_spaces", "unquarantine_apps", "untest", "utils-install-config", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
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.require_paths = ["lib"]
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.1.8"])
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.1.8"])
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.1.8"])
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.99
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: 2013-10-09 00:00:00.000000000 Z
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.1.8
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.1.8
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
- - discover
118
- - edit
113
+ - untest
114
+ - chroot-libs
119
115
  - edit_wait
120
- - enum
121
- - errf
122
- - git-empty
116
+ - chroot-exec
123
117
  - irb_connect
124
- - myex
125
118
  - number_files
126
- - on_change
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
- - xmp
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.5
239
+ rubygems_version: 2.2.1
238
240
  signing_key:
239
241
  specification_version: 4
240
242
  summary: Some useful command line utilities