#!/bin/bash

rm -rf autogen

cat > dockerversion/version_autogen.go <<DVEOF
// +build autogen
// Package version 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}"
	InitSHA1  string = "$DOCKER_INITSHA1"
	InitPath  string = "$DOCKER_INITPATH"
)
// AUTOGENERATED FILE; see $BASH_SOURCE
DVEOF

# Compile the Windows resources into the sources
mkdir -p autogen/winresources
cat > autogen/winresources/resources.go <<WREOF
// 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 \
		-o        autogen/winresources/rsrc.syso > /dev/null
fi
