#!/bin/sh -e

# Disable stripping of binaries.
# This breaks Go.
:> nostrip

export CC="${CC:-cc}"
export GOARCH=amd64
export GO_LDFLAGS="-w -s"

[ -f "$KISS_ROOT/var/db/kiss/installed/go/manifest" ] || {
    export GOROOT=$PWD/go1.4-bootstrap
    export GOROOT_FINAL=$PWD/lib/go-bootstrap

    mkdir -p lib/go-bootstrap

    cd "$GOROOT/src"
    bash ./make.bash
    cd ..
    cp -a bin pkg src ../lib/go-bootstrap
    cd ..
}

export GOROOT_FINAL=/usr/lib/go

if [ -f "$KISS_ROOT/var/db/kiss/go/manifest" ]; then
    export GOROOT_BOOTSTRAP=/usr/lib/go
else
    export GOROOT_BOOTSTRAP=$PWD/lib/go-bootstrap
fi

export GOROOT=$PWD/go-current

(
    cd "$GOROOT/src"
    bash make.bash --no-clean -v
)

cd "$GOROOT"

mkdir -p "$1/usr/bin" "$1/usr/lib/go/bin"

install -m755 "bin/go"    "$1/usr/lib/go/bin/go"
install -m755 "bin/gofmt" "$1/usr/lib/go/bin/gofmt"

ln -s "/usr/lib/go/bin/go"    "$1/usr/bin"
ln -s "/usr/lib/go/bin/gofmt" "$1/usr/bin"

cp -a misc pkg src lib "$1/usr/lib/go"

# Remove unneeded files.
rm -f  "$1/usr/share/go/doc/articles/wiki/get.bin"
rm -f  "$1/usr/lib/go/pkg/tool/"*/api
rm -rf "$1/usr/lib/go/pkg/bootstrap"
rm -rf "$1/usr/lib/go/pkg/obj"

cd "$1/usr/lib/go/src"

# Remove tests.
find . -type f -a -name \*_test.go -delete
find . -type f -a -name \*.bash    -delete
find . -type f -a -name \*.bat     -delete
find . -type f -a -name \*.rc      -delete

find . -type d -a -name testdata |
    while read -r dir; do
        rm -rf "$dir"
    done