| #!/usr/bin/env sh | |
| quadVersionNum() { | |
| num=$(echo "${1:-0}" | cut -d. -f"$2") | |
| if [ "$num" != "0" ]; then | |
| echo "${num#0}" | |
| else | |
| echo "$num" | |
| fi | |
| } | |
| # Create version quad for Windows of the form major.minor.patch.build | |
| 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/') | |
| # Generate winres.json to be able to create a syso file which contains | |
| # Microsoft Windows Version Information and an icon using go-winres. | |
| # https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block | |
| # https://github.com/tc-hib/go-winres#json-format | |
| cat > "./cli/winresources/${BINARY_NAME}/winres.json" << EOL | |
| { | |
| "RT_GROUP_ICON": { | |
| "#1": { | |
| "0409": "../../winresources/docker.ico" | |
| } | |
| }, | |
| "RT_MANIFEST": { | |
| "#1": { | |
| "0409": { | |
| "identity": {}, | |
| "description": "Docker Engine", | |
| "minimum-os": "vista", | |
| "execution-level": "", | |
| "ui-access": false, | |
| "auto-elevate": false, | |
| "dpi-awareness": "unaware", | |
| "disable-theming": false, | |
| "disable-window-filtering": false, | |
| "high-resolution-scrolling-aware": false, | |
| "ultra-high-resolution-scrolling-aware": false, | |
| "long-path-aware": false, | |
| "printer-driver-isolation": false, | |
| "gdi-scaling": false, | |
| "segment-heap": false, | |
| "use-common-controls-v6": false | |
| } | |
| } | |
| }, | |
| "RT_MESSAGETABLE": { | |
| "#1": { | |
| "0409": "../../winresources/event_messages.bin" | |
| } | |
| }, | |
| "RT_VERSION": { | |
| "#1": { | |
| "0409": { | |
| "fixed": { | |
| "file_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)", | |
| "product_version": "$(quadVersionNum "$VERSION_QUAD" 1).$(quadVersionNum "$VERSION_QUAD" 2).$(quadVersionNum "$VERSION_QUAD" 3).$(quadVersionNum "$VERSION_QUAD" 4)", | |
| "type": "Unknown" | |
| }, | |
| "info": { | |
| "0000": { | |
| "CompanyName": "${PACKAGER_NAME}", | |
| "FileVersion": "${VERSION}", | |
| "LegalCopyright": "Copyright © 2015-$(date +'%Y') Docker Inc.", | |
| "OriginalFileName": "$(basename "${BINARY_FULLNAME}")", | |
| "ProductName": "${PRODUCT}", | |
| "ProductVersion": "${VERSION}", | |
| "SpecialBuild": "${GITCOMMIT}" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| EOL | |
| ( | |
| set -x | |
| cat "./cli/winresources/${BINARY_NAME}/winres.json" | |
| ) | |
| # Create winresources package stub if removed while using tmpfs in Dockerfile | |
| if [ ! -f "./cli/winresources/${BINARY_NAME}/winresources.go" ]; then | |
| echo "package winresources" > "./cli/winresources/${BINARY_NAME}/winresources.go" | |
| fi |