#!/bin/bash

rm -rf autogen

cat > dockerversion/version_autogen.go <<DVEOF
// +build autogen

// Package dockerversion is auto-generated at build-time
package dockerversion

// Default build-time variable for library-import.
// This file is overridden on build with build-time informations.
const (
	GitCommit string = "$GITCOMMIT"
	Version   string = "$VERSION"
	BuildTime string = "$BUILDTIME"
	IAmStatic string = "${IAMSTATIC:-true}"
)
// AUTOGENERATED FILE; see $BASH_SOURCE
DVEOF

# Compile the Windows resources into the sources
mkdir -p autogen/winresources
cat > autogen/winresources/resources.go <<WREOF
// Package winresources is auto-generated at build-time
// AUTOGENERATED FILE; see $BASH_SOURCE
package winresources

/*

This package is for embedding a manifest file and an icon into docker.exe.
The benefit of this is that a manifest file does not need to be alongside
the .exe, and there is an icon when docker runs, or viewed through Windows
explorer.

When make binary is run, the Dockerfile prepares the build environment by:

 - Cloning github.com/akavel/rsrc

 - Go-installing the rsrc executable

make.sh invokes hack/make/.go-autogen to:

 - Run rsrc to create a binary file (autogen/winresources/rsrc.syso) that
   contains the manifest and icon. This file is automatically picked up by
   'go build', so no post-processing steps are required. The sources for
   rsrc.syso are under hack/make/.resources-windows.

*/
WREOF
if [ "$(go env GOOS)" = 'windows' ]; then
	rsrc \
		-manifest hack/make/.resources-windows/docker.exe.manifest \
		-ico      hack/make/.resources-windows/docker.ico \
		-arch     "amd64" \
		-o        autogen/winresources/rsrc_amd64.syso > /dev/null

	rsrc \
		-manifest hack/make/.resources-windows/docker.exe.manifest \
		-ico      hack/make/.resources-windows/docker.ico \
		-arch     "386" \
		-o        autogen/winresources/rsrc_386.syso > /dev/null
fi
