changeset 265 | 05c40b36d3b2 |
264:8f478162d991 | 265:05c40b36d3b2 |
---|---|
1 #!/bin/bash |
|
2 |
|
3 # Copyright 2019 The Go Authors. All rights reserved. |
|
4 # Use of this source code is governed by a BSD-style |
|
5 # license that can be found in the LICENSE file. |
|
6 |
|
7 set -e |
|
8 shopt -s nullglob |
|
9 |
|
10 knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" |
|
11 [[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } |
|
12 |
|
13 { |
|
14 echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." |
|
15 echo |
|
16 echo "package windows" |
|
17 echo "type KNOWNFOLDERID GUID" |
|
18 echo "var (" |
|
19 while read -r line; do |
|
20 [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue |
|
21 printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ |
|
22 "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ |
|
23 $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ |
|
24 $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) |
|
25 done < "$knownfolders" |
|
26 echo ")" |
|
27 } | gofmt > "zknownfolderids_windows.go" |