github.com/mtsmfm/go/src@v0.0.0-20221020090648-44bdcb9f8fde/time/zoneinfo_ios.go (about) 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 }