github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/hack/make/.mkwinres (about) 1 #!/usr/bin/env sh 2 3 quadVersionNum() { 4 num=$(echo "${1:-0}" | cut -d. -f"$2") 5 if [ "$num" != "0" ]; then 6 echo "${num#0}" 7 else 8 echo "$num" 9 fi 10 } 11 12 # Create version quad for Windows of the form major.minor.patch.build 13 VERSION_QUAD=$(printf "%s" "$VERSION" | sed -re 's/^([0-9.]*).*$/\1/' | sed -re 's/\.$//' | sed -re 's/^[0-9]+$/\0\.0/' | sed -re 's/^[0-9]+\.[0-9]+$/\0\.0/' | sed -re 's/^[0-9]+\.[0-9]+\.[0-9]+$/\0\.0/') 14 15 # Generate winres.json to be able to create a syso file which contains 16 # Microsoft Windows Version Information and an icon using go-winres. 17 # https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block 18 # https://github.com/tc-hib/go-winres#json-format 19 cat > "./cli/winresources/${BINARY_NAME}/winres.json" << EOL 20 { 21 "RT_GROUP_ICON": { 22 "#1": { 23 "0409": "../../winresources/docker.ico" 24 } 25 }, 26 "RT_MANIFEST": { 27 "#1": { 28 "0409": { 29 "identity": {}, 30 "description": "Docker Engine", 31 "minimum-os": "vista", 32 "execution-level": "", 33 "ui-access": false, 34 "auto-elevate": false, 35 "dpi-awareness": "unaware", 36 "disable-theming": false, 37 "disable-window-filtering": false, 38 "high-resolution-scrolling-aware": false, 39 "ultra-high-resolution-scrolling-aware": false, 40 "long-path-aware": false, 41 "printer-driver-isolation": false, 42 "gdi-scaling": false, 43 "segment-heap": false, 44 "use-common-controls-v6": false 45 } 46 } 47 }, 48 "RT_MESSAGETABLE": { 49 "#1": { 50 "0409": "../../winresources/event_messages.bin" 51 } 52 }, 53 "RT_VERSION": { 54 "#1": { 55 "0409": { 56 "fixed": { 57 "file_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)", 58 "product_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)", 59 "type": "Unknown" 60 }, 61 "info": { 62 "0000": { 63 "CompanyName": "${PACKAGER_NAME}", 64 "FileVersion": "${VERSION}", 65 "LegalCopyright": "Copyright © 2015-$(date +'%Y') Docker Inc.", 66 "OriginalFileName": "$(basename "${BINARY_FULLNAME}")", 67 "ProductName": "${PRODUCT}", 68 "ProductVersion": "${VERSION}", 69 "SpecialBuild": "${GITCOMMIT}" 70 } 71 } 72 } 73 } 74 } 75 } 76 EOL 77 ( 78 set -x 79 cat "./cli/winresources/${BINARY_NAME}/winres.json" 80 ) 81 82 # Create winresources package stub if removed while using tmpfs in Dockerfile 83 if [ ! -f "./cli/winresources/${BINARY_NAME}/winresources.go" ]; then 84 echo "package winresources" > "./cli/winresources/${BINARY_NAME}/winresources.go" 85 fi