| #!/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 |