| // Copyright 2015 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| //go:build ios | |
| package time | |
| import ( | |
| "syscall" | |
| ) | |
| var platformZoneSources []string // none on iOS | |
| func gorootZoneSource(goroot string) (string, bool) { | |
| // The working directory at initialization is the root of the | |
| // app bundle: "/private/.../bundlename.app". That's where we | |
| // keep zoneinfo.zip for tethered iOS builds. | |
| // For self-hosted iOS builds, the zoneinfo.zip is in GOROOT. | |
| var roots []string | |
| if goroot != "" { | |
| roots = append(roots, goroot+"/lib/time") | |
| } | |
| wd, err := syscall.Getwd() | |
| if err == nil { | |
| roots = append(roots, wd) | |
| } | |
| for _, r := range roots { | |
| var st syscall.Stat_t | |
| fd, err := syscall.Open(r, syscall.O_RDONLY, 0) | |
| if err != nil { | |
| continue | |
| } | |
| defer syscall.Close(fd) | |
| if err := syscall.Fstat(fd, &st); err == nil { | |
| return r + "/zoneinfo.zip", true | |
| } | |
| } | |
| return "", false | |
| } | |
| func initLocal() { | |
| // TODO(crawshaw): [NSTimeZone localTimeZone] | |
| localLoc = *UTC | |
| } | |