mirror of
https://github.com/golang/sys.git
synced 2026-02-08 03:36:03 +03:00
mkerrors.go is called by 'go generate' command to generate zerrors_windows.go mkerrors.go executes mkerrors.bash. But mkerrors.bash requires winerror.h to be present on the system to succeed. And winerror.h is never present on the system. So executing mkerrors.go always fails. zerrors_windows.go is never changes. It was changed recently once. The change before that was in 2014. This change removes mkerrors.go, so other commands that are part of 'go generate' execution can proceed. If someone needs to update zerrors_windows.go, they can call mkerrors.bash directly. Fixes golang/go#32349 Change-Id: I9b3e581e183377201e8f74c2d991d97564f36778 Reviewed-on: https://go-review.googlesource.com/c/sys/+/179582 Reviewed-by: Takuto Ikuta <tikuta@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Jason Donenfeld <Jason@zx2c4.com>
64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2019 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.
|
|
|
|
set -e
|
|
shopt -s nullglob
|
|
|
|
winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)"
|
|
[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; }
|
|
|
|
declare -A errors
|
|
|
|
{
|
|
echo "// Code generated by 'go generate'; DO NOT EDIT."
|
|
echo
|
|
echo "package windows"
|
|
echo "import \"syscall\""
|
|
echo "const ("
|
|
|
|
while read -r line; do
|
|
unset vtype
|
|
if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then
|
|
key="${BASH_REMATCH[1]}"
|
|
value="${BASH_REMATCH[3]}"
|
|
elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then
|
|
key="${BASH_REMATCH[1]}"
|
|
value="${BASH_REMATCH[3]}"
|
|
vtype="${BASH_REMATCH[2]}"
|
|
elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then
|
|
key="${BASH_REMATCH[1]}"
|
|
value="${BASH_REMATCH[3]}"
|
|
vtype="${BASH_REMATCH[2]}"
|
|
else
|
|
continue
|
|
fi
|
|
[[ -n $key && -n $value ]] || continue
|
|
[[ -z ${errors["$key"]} ]] || continue
|
|
errors["$key"]="$value"
|
|
if [[ -v vtype ]]; then
|
|
if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then
|
|
vtype=""
|
|
elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then
|
|
vtype="Handle"
|
|
else
|
|
vtype="syscall.Errno"
|
|
fi
|
|
last_vtype="$vtype"
|
|
else
|
|
vtype=""
|
|
if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then
|
|
value="S_OK"
|
|
elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then
|
|
value="ERROR_SUCCESS"
|
|
fi
|
|
fi
|
|
|
|
echo "$key $vtype = $value"
|
|
done < "$winerror"
|
|
|
|
echo ")"
|
|
} | gofmt > "zerrors_windows.go"
|