...
1 package tzdata
2
3 import (
4 "bufio"
5 "bytes"
6 "strings"
7 )
8
9 const tzdataURL = `ftp://ftp.iana.org/tz/tzdata-latest.tar.gz`
10
11
12 func DownloadOldNames() (map[string]string, error) {
13 var err error
14
15 buf, err := FTPDownload(tzdataURL)
16 if err != nil {
17 return nil, err
18 }
19
20 var b bytes.Buffer
21 w := bufio.NewWriter(&b)
22 err = ExtractTarGz(&buf, w, "backward")
23 if err != nil {
24 return nil, err
25 }
26
27 backward := make(map[string]string)
28 for _, line := range strings.Split(b.String(), "\n") {
29 if len(strings.TrimSpace(line)) == 0 {
30 continue
31 }
32 if line[0:1] == "#" {
33 continue
34 }
35 if !strings.HasPrefix(line, "Link") {
36 continue
37 }
38 parts := strings.Fields(line)
39 if len(parts) != 3 {
40 continue
41 }
42 backward[parts[2]] = parts[1]
43 }
44
45 return backward, nil
46 }
47
View as plain text