ssh-config 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -4,6 +4,14 @@ CHANGES
4
4
  2010-03-29:
5
5
  -----------
6
6
 
7
+ - Version 0.1.2
8
+
9
+ - copy command now takes extra args: key/value pairs to set/override
10
+ in the new host section
11
+
12
+ 2010-03-29:
13
+ -----------
14
+
7
15
  - Version 0.1.1
8
16
 
9
17
  - Search strings are highlighted
data/README.rdoc CHANGED
@@ -31,7 +31,7 @@ from a section, the section is NOT removed; use rm <host> for that.
31
31
 
32
32
  Removes an entire host section.
33
33
 
34
- === copy <old_host> <new_host>
34
+ === copy <old_host> <new_host> [<key> <value> [...]]
35
35
 
36
36
  Copies the entire section named <old_host> to a new section called
37
37
  <new_host>. If old_host has a Hostname section, ssh-config will try to
@@ -47,6 +47,16 @@ look like this:
47
47
  Host rails02
48
48
  Hostname rails02.example.com
49
49
 
50
+ You can manually override any setting, and/or set new ones by
51
+ appending the new key/value pairs at the end. Given the rails01
52
+ section above, "ssh-config copy rails01 rails02 Hostname
53
+ rails-02.example.com User dbrady" would emit
54
+
55
+ Host rails02
56
+ Hostname rails-02.example.com
57
+ User dbrady
58
+
59
+
50
60
  === dump
51
61
 
52
62
  Dumps the entire file.
data/bin/ssh-config CHANGED
@@ -54,7 +54,7 @@ when 'search'
54
54
  search = argv.shift
55
55
  puts config.search(search).gsub(search, "\033[43m#{search}\033[0m")
56
56
  when 'cp', 'copy'
57
- config.copy! argv.shift, argv.shift
57
+ config.copy! argv.shift, argv.shift, *argv
58
58
  when 'unset'
59
59
  config.unset!(argv.shift, *argv)
60
60
  when 'set'
data/lib/config_file.rb CHANGED
@@ -89,13 +89,13 @@ class ConfigFile
89
89
  end
90
90
  end
91
91
 
92
- def copy!(old_host_nick, new_host_nick)
92
+ def copy!(old_host_nick, new_host_nick, *args)
93
93
  backup if @make_backups
94
- copy(old_host_nick, new_host_nick)
94
+ copy(old_host_nick, new_host_nick, *args)
95
95
  save
96
96
  end
97
97
 
98
- def copy(old_host_nick, new_host_nick)
98
+ def copy(old_host_nick, new_host_nick, *args)
99
99
  if @sections_by_name.key?(old_host_nick)
100
100
  old_section = @sections_by_name[old_host_nick]
101
101
  new_section = @sections_by_name[new_host_nick] || add_section(new_host_nick)
@@ -104,6 +104,11 @@ class ConfigFile
104
104
  if old_section["Hostname"]
105
105
  new_section["Hostname"] = old_section["Hostname"].gsub(old_host_nick, new_host_nick)
106
106
  end
107
+
108
+ while args.length > 0
109
+ key, value = args.shift, args.shift
110
+ section = set(new_host_nick, key, value)
111
+ end
107
112
  end
108
113
  end
109
114
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Brady