* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same. * removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context. * on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors. * added unit tests for step_download that are now CI tested on windows, mac & linux. * files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension` * since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted. * a download file is protected and locked by a file lock, * updated docs * updated go modules and vendors
29 lines
456 B
Go
29 lines
456 B
Go
// +build windows
|
|
// +build !appengine
|
|
|
|
package runewidth
|
|
|
|
import (
|
|
"syscall"
|
|
)
|
|
|
|
var (
|
|
kernel32 = syscall.NewLazyDLL("kernel32")
|
|
procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP")
|
|
)
|
|
|
|
// IsEastAsian return true if the current locale is CJK
|
|
func IsEastAsian() bool {
|
|
r1, _, _ := procGetConsoleOutputCP.Call()
|
|
if r1 == 0 {
|
|
return false
|
|
}
|
|
|
|
switch int(r1) {
|
|
case 932, 51932, 936, 949, 950:
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|