mirror of
https://github.com/golang/go
synced 2024-11-23 10:20:03 -07:00
os: set TMPDIR on darwin/arm
This is a roll forward of 2adc3bd6ef
. It occurred to me that we will
want this code on both darwin/arm and darwin/arm64. Removing _arm from
the file name conveniently avoids #10032.
Change-Id: I3a96a3e7020907d9307af8f696e26ad55b2060f0
Reviewed-on: https://go-review.googlesource.com/6460
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
79f727a70e
commit
bfb8ad51d5
40
src/os/file_darwin.go
Normal file
40
src/os/file_darwin.go
Normal file
@ -0,0 +1,40 @@
|
||||
// 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.
|
||||
|
||||
// +build arm arm64
|
||||
|
||||
package os
|
||||
|
||||
/*
|
||||
#cgo CFLAGS: -x objective-c
|
||||
#cgo LDFLAGS: -framework CoreFoundation -framework Foundation
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <CoreFoundation/CFString.h>
|
||||
#include <Foundation/NSPathUtilities.h>
|
||||
|
||||
char tmpdir[MAXPATHLEN];
|
||||
|
||||
char* loadtmpdir() {
|
||||
tmpdir[0] = 0;
|
||||
CFStringRef path = (CFStringRef)NSTemporaryDirectory();
|
||||
CFStringGetCString(path, tmpdir, sizeof(tmpdir), kCFStringEncodingUTF8);
|
||||
return tmpdir;
|
||||
}
|
||||
*/
|
||||
import "C"
|
||||
|
||||
func init() {
|
||||
if Getenv("TMPDIR") != "" {
|
||||
return
|
||||
}
|
||||
dir := C.GoString(C.loadtmpdir())
|
||||
if len(dir) == 0 {
|
||||
return
|
||||
}
|
||||
if dir[len(dir)-1] == '/' {
|
||||
dir = dir[:len(dir)-1]
|
||||
}
|
||||
Setenv("TMPDIR", dir)
|
||||
}
|
Loading…
Reference in New Issue
Block a user