...

Source file src/github.com/thlib/go-timezone-local/tzdata/download_oldtz.go

Documentation: github.com/thlib/go-timezone-local/tzdata

     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  // DownloadOldNames fetches the list of old tz names and returns a mapping
    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