flash: fix getDefaultPort() fails on Windows locales such as Japan
Этот коммит содержится в:
родитель
904fa852f6
коммит
8ce3cfad40
1 изменённых файлов: 5 добавлений и 16 удалений
21
main.go
21
main.go
|
@ -603,29 +603,18 @@ func getDefaultPort() (port string, err error) {
|
||||||
case "freebsd":
|
case "freebsd":
|
||||||
portPath = "/dev/cuaU*"
|
portPath = "/dev/cuaU*"
|
||||||
case "windows":
|
case "windows":
|
||||||
cmd := exec.Command("wmic",
|
ports, err := serial.GetPortsList()
|
||||||
"PATH", "Win32_SerialPort", "WHERE", "Caption LIKE 'USB Serial%'", "GET", "DeviceID")
|
|
||||||
|
|
||||||
var out bytes.Buffer
|
|
||||||
cmd.Stdout = &out
|
|
||||||
err := cmd.Run()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
if out.String() == "No Instance(s) Available." {
|
if len(ports) == 0 {
|
||||||
return "", errors.New("no serial ports available")
|
return "", errors.New("no serial ports available")
|
||||||
|
} else if len(ports) > 1 {
|
||||||
|
return "", errors.New("multiple serial ports available - use -port flag")
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, line := range strings.Split(out.String(), "\n") {
|
return ports[0], nil
|
||||||
words := strings.Fields(line)
|
|
||||||
if len(words) == 1 {
|
|
||||||
if strings.Contains(words[0], "COM") {
|
|
||||||
return words[0], nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", errors.New("unable to locate a serial port")
|
|
||||||
default:
|
default:
|
||||||
return "", errors.New("unable to search for a default USB device to be flashed on this OS")
|
return "", errors.New("unable to search for a default USB device to be flashed on this OS")
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче