...

Source file src/pkg/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	// +build darwin
     6	// +build arm arm64
     7	
     8	package time
     9	
    10	import (
    11		"runtime"
    12		"syscall"
    13	)
    14	
    15	var zoneSources = []string{
    16		getZoneRoot() + "/zoneinfo.zip",
    17	}
    18	
    19	func getZoneRoot() string {
    20		// The working directory at initialization is the root of the
    21		// app bundle: "/private/.../bundlename.app". That's where we
    22		// keep zoneinfo.zip for tethered iOS builds.
    23		// For self-hosted iOS builds, the zoneinfo.zip is in GOROOT.
    24		roots := []string{runtime.GOROOT() + "/lib/time"}
    25		wd, err := syscall.Getwd()
    26		if err == nil {
    27			roots = append(roots, wd)
    28		}
    29		for _, r := range roots {
    30			var st syscall.Stat_t
    31			fd, err := syscall.Open(r, syscall.O_RDONLY, 0)
    32			if err != nil {
    33				continue
    34			}
    35			defer syscall.Close(fd)
    36			if err := syscall.Fstat(fd, &st); err == nil {
    37				return r
    38			}
    39		}
    40		return "/XXXNOEXIST"
    41	}
    42	
    43	func initLocal() {
    44		// TODO(crawshaw): [NSTimeZone localTimeZone]
    45		localLoc = *UTC
    46	}
    47	

View as plain text