blob: 70d66814c2e118b5386eafde9ec9f7d5685ef8fb [file] [log] [blame]
#!/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