|
7 | 7 | "os"
|
8 | 8 | User "os/user"
|
9 | 9 | "regexp"
|
| 10 | + "sort" |
10 | 11 | "strings"
|
11 | 12 | )
|
12 | 13 |
|
@@ -54,7 +55,7 @@ type Host struct {
|
54 | 55 | }
|
55 | 56 |
|
56 | 57 | func main() {
|
57 |
| - kingpin.Version("0.5.3") |
| 58 | + kingpin.Version("0.5.4") |
58 | 59 | usr, _ := User.Current()
|
59 | 60 | dir := usr.HomeDir
|
60 | 61 | ssh_config = dir + "/.ssh/config"
|
@@ -160,12 +161,13 @@ func _parseConfig(input string) {
|
160 | 161 | }
|
161 | 162 |
|
162 | 163 | func _listHosts() {
|
163 |
| - regex, _ := regexp.Compile(`Host (.+)`) |
164 |
| - input, _ := ioutil.ReadFile(ssh_config) |
165 |
| - match := regex.FindAllStringSubmatch(string(input), -1) |
166 |
| - |
167 |
| - for _, host := range match { |
168 |
| - fmt.Println(fmt.Sprintf("%v", host[1])) |
| 164 | + var keys []string |
| 165 | + for k := range entries { |
| 166 | + keys = append(keys, k) |
| 167 | + } |
| 168 | + sort.Strings(keys) |
| 169 | + for _, k := range keys { |
| 170 | + fmt.Println(fmt.Sprintf("%v", k)) |
169 | 171 | }
|
170 | 172 | }
|
171 | 173 |
|
@@ -203,7 +205,12 @@ func _updateHost(host string, hostName string, identityFile string, user string)
|
203 | 205 | func _saveEntries() {
|
204 | 206 | fh, _ := os.OpenFile(ssh_config, os.O_RDWR|os.O_TRUNC, 0777)
|
205 | 207 |
|
206 |
| - for _, entry := range entries { |
207 |
| - fh.WriteString(fmt.Sprintf("%v\n", _printHost(entry))) |
| 208 | + var keys []string |
| 209 | + for k := range entries { |
| 210 | + keys = append(keys, k) |
| 211 | + } |
| 212 | + sort.Strings(keys) |
| 213 | + for _, k := range keys { |
| 214 | + fh.WriteString(fmt.Sprintf("%v\n", _printHost(entries[k]))) |
208 | 215 | }
|
209 | 216 | }
|
0 commit comments