Source file src/time/zoneinfo_ios.go

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build ios
     6  
     7  package time
     8  
     9  import (
    10  	"syscall"
    11  )
    12  
    13  var platformZoneSources []string // none on iOS
    14  
    15  func gorootZoneSource(goroot string) (string, bool) {
    16  	// The working directory at initialization is the root of the
    17  	// app bundle: "/private/.../bundlename.app". That's where we
    18  	// keep zoneinfo.zip for tethered iOS builds.
    19  	// For self-hosted iOS builds, the zoneinfo.zip is in GOROOT.
    20  	var roots []string
    21  	if goroot != "" {
    22  		roots = append(roots, goroot+"/lib/time")
    23  	}
    24  	wd, err := syscall.Getwd()
    25  	if err == nil {
    26  		roots = append(roots, wd)
    27  	}
    28  	for _, r := range roots {
    29  		var st syscall.Stat_t
    30  		fd, err := syscall.Open(r, syscall.O_RDONLY, 0)
    31  		if err != nil {
    32  			continue
    33  		}
    34  		defer syscall.Close(fd)
    35  		if err := syscall.Fstat(fd, &st); err == nil {
    36  			return r + "/zoneinfo.zip", true
    37  		}
    38  	}
    39  	return "", false
    40  }
    41  
    42  func initLocal() {
    43  	// TODO(crawshaw): [NSTimeZone localTimeZone]
    44  	localLoc = *UTC
    45  }
    46  

View as plain text