ssh-config 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7e2019230b1e51982769d29450d10d98ba7c0b92
4
- data.tar.gz: 71cd2369a39509b6d623fd50e3ced45dbdc30d15
2
+ SHA256:
3
+ metadata.gz: d36111053e6e4166b288b803b78f83d7fa71667e23ad9d8a7bb836e3eddbe74f
4
+ data.tar.gz: 3d7dcc8a6d83029841ccd5f2c6b51bb008e20948d02dfca0643fd07a3ff87e17
5
5
  SHA512:
6
- metadata.gz: f71ad2cd574d6f86a97f7aad4ebf18833067d659c7a59613b0854ec8eecc58f0dafc6da2f611ea459487a6fed3cdc67b943f6d610df399afe20d09e058e61abf
7
- data.tar.gz: 3902d9a8d5a979793b5fbd9d9cee7bda0c73bfc9a9b790c844ffa0c9ada72dc37df587539dea66a86fad5a7fb058a4116270926c1cd28490478d9a59a5258e3d
6
+ metadata.gz: 7e32609207782fd80628f50cc599d92acb6aec7e51f7ce272eb14c5569c28373d5c2cf5cc52f623749c122b8954894db7d1a0979ba23295f0ef95477aa122a59
7
+ data.tar.gz: 90d3c936c2cfec3e6b80fcde3387afd35fc67867752f354df1248f8b5d9cae3c66cf14a7c518ec68a7f13d58052d4e4e6aa9f39b4e03816fc8c13e20f2e5cb31
data/CHANGES CHANGED
@@ -1,7 +1,7 @@
1
1
  CHANGES
2
2
  ----------------------------------------------------------------------
3
3
 
4
- 2013-07-03:
4
+ 2011-02-09:
5
5
  -----------
6
6
 
7
7
  - Version 0.1.3
@@ -45,13 +45,26 @@ HELP
45
45
 
46
46
  end
47
47
 
48
+ def colorize output
49
+ # Colorize hostname and aliases
50
+ output = output.gsub(/Host\s+([a-zA-Z0-9 ]*)/, "\033[33mHost \033[31m"+'\1'+"\033[0m")
51
+ # Colorize comments
52
+ output = output.gsub("#", "\033[30m#").gsub("\n", "\033[0m\n")
53
+ # Colorize parameters
54
+ output.gsub(/^(\s*[a-zA-Z0-9]*\s*\b)/, "\033[37m"+'\1'+"\033[0m")
55
+ end
56
+
48
57
  case command
58
+ when '-?'
59
+ puts usage
60
+ when '-h'
61
+ puts usage
49
62
  when 'help'
50
63
  puts usage
51
64
  when 'list'
52
65
  puts config.list
53
66
  when 'show'
54
- puts config.show(*argv)
67
+ puts colorize config.show(*argv)
55
68
  when 'search'
56
69
  search = argv.shift
57
70
  result = config.search(search).gsub(search, "\033[43m#{search}\033[0m")
@@ -65,7 +78,7 @@ when 'set'
65
78
  when 'rm', 'del', 'delete'
66
79
  config.rm! argv.shift
67
80
  when 'dump'
68
- puts config.dump
81
+ puts colorize config.dump
69
82
  when 'alias'
70
83
  config.alias!(*argv)
71
84
  when 'unalias'
@@ -1,6 +1,9 @@
1
+ require 'fileutils'
2
+
1
3
  class ConfigFile
2
- def initialize
3
- @make_backups = true
4
+ def initialize(file_location = '~/.ssh/config', make_backups = true)
5
+ @config_file_location = file_location
6
+ @make_backups = make_backups
4
7
  @header_lines = []
5
8
  @sections = []
6
9
  @sections_by_name = {}
@@ -16,7 +19,9 @@ class ConfigFile
16
19
 
17
20
  def read_config
18
21
  current_section = nil
19
- IO.readlines(File.expand_path("~/.ssh/config")).each_with_index do |line, i|
22
+ filename = File.expand_path(@config_file_location)
23
+ return unless File.exist?(filename)
24
+ IO.readlines(filename).each_with_index do |line, i|
20
25
  line.rstrip!
21
26
  if line =~ /\bHost\s+(.+)/
22
27
  current_section = add_section($1)
@@ -149,13 +154,14 @@ class ConfigFile
149
154
  end
150
155
 
151
156
  def save
152
- File.open(File.expand_path("~/.ssh/config"), "w") do |file|
157
+ File.open(File.expand_path(@config_file_location), "w") do |file|
153
158
  file.puts dump
154
159
  end
155
160
  end
156
161
 
157
162
  def backup
158
- FileUtils.copy(File.expand_path("~/.ssh/config"), File.expand_path("~/.ssh/config~"))
163
+ filename = File.expand_path(@config_file_location)
164
+ FileUtils.copy(filename, filename + "~") if File.exist?(filename)
159
165
  end
160
166
 
161
167
  private
@@ -65,7 +65,8 @@ class ConfigSection
65
65
  end
66
66
 
67
67
  def setting_index(setting)
68
- r = Regexp.new(setting)
68
+ # according to the ssh_config man page keys are _case insensitive_
69
+ r = Regexp.new(setting, Regexp::IGNORECASE)
69
70
  lines.index {|line| line =~ r}
70
71
  end
71
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssh-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Brady
@@ -9,17 +9,56 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2011-02-09 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: '3.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: '3.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-expectations
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: '3.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: '3.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.20.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.20.0
13
55
  description: Ssh-Config, a tool that lets you quickly add, update, remove, and copy
14
56
  ssh config file entries.
15
57
  email: github@shinybit.com
16
58
  executables:
17
59
  - ssh-config
18
60
  extensions: []
19
- extra_rdoc_files:
20
- - README.rdoc
21
- - MIT-LICENSE
22
- - CHANGES
61
+ extra_rdoc_files: []
23
62
  files:
24
63
  - CHANGES
25
64
  - MIT-LICENSE
@@ -32,28 +71,21 @@ homepage: http://github.com/dbrady/ssh-config/
32
71
  licenses: []
33
72
  metadata: {}
34
73
  post_install_message:
35
- rdoc_options:
36
- - --line-numbers
37
- - --inline-source
38
- - --main
39
- - README.rdoc
40
- - --title
41
- - Ssh-Config - A Tool for ssh config files
74
+ rdoc_options: []
42
75
  require_paths:
43
76
  - lib
44
77
  required_ruby_version: !ruby/object:Gem::Requirement
45
78
  requirements:
46
- - - '>='
79
+ - - ">="
47
80
  - !ruby/object:Gem::Version
48
81
  version: '0'
49
82
  required_rubygems_version: !ruby/object:Gem::Requirement
50
83
  requirements:
51
- - - '>='
84
+ - - ">="
52
85
  - !ruby/object:Gem::Version
53
86
  version: '0'
54
87
  requirements: []
55
- rubyforge_project:
56
- rubygems_version: 2.0.3
88
+ rubygems_version: 3.0.8
57
89
  signing_key:
58
90
  specification_version: 4
59
91
  summary: Ssh-Config - tool for managing your .ssh/config file