vendor/golang.org/x/sys/windows/mkknownfolderids.bash
changeset 265 05c40b36d3b2
equal deleted inserted replaced
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"