Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28f527c3 authored by Colin Cross's avatar Colin Cross
Browse files

Write BUILD_DATETIME_FILE after SetupOutDir

Delay writing the BUILD_DATETIME_FILE until after the out directory
has been created.

Test: cuj_tests
Change-Id: Ice6f34d003f93c26b5d2d0b64f92b11efe16c2d4
parent 09ef474b
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -33,6 +33,15 @@ func SetupOutDir(ctx Context, config Config) {
	// can be parsed as ninja output.
	ensureEmptyFileExists(ctx, filepath.Join(config.OutDir(), "ninja_build"))
	ensureEmptyFileExists(ctx, filepath.Join(config.OutDir(), ".out-dir"))

	if buildDateTimeFile, ok := config.environ.Get("BUILD_DATETIME_FILE"); ok {
		err := ioutil.WriteFile(buildDateTimeFile, []byte(config.buildDateTime), 0777)
		if err != nil {
			ctx.Fatalln("Failed to write BUILD_DATETIME to file:", err)
		}
	} else {
		ctx.Fatalln("Missing BUILD_DATETIME_FILE")
	}
}

var combinedBuildNinjaTemplate = template.Must(template.New("combined").Parse(`
+9 −13
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
package build

import (
	"io/ioutil"
	"os"
	"path/filepath"
	"runtime"
@@ -34,6 +33,7 @@ type configImpl struct {
	goma          bool
	environ       *Environment
	distDir       string
	buildDateTime string

	// From the arguments
	parallel   int
@@ -244,18 +244,14 @@ func NewConfig(ctx Context, args ...string) Config {

	outDir := ret.OutDir()
	buildDateTimeFile := filepath.Join(outDir, "build_date.txt")
	var content string
	if buildDateTime, ok := ret.environ.Get("BUILD_DATETIME"); ok && buildDateTime != "" {
		content = buildDateTime
		ret.buildDateTime = buildDateTime
	} else {
		content = strconv.FormatInt(time.Now().Unix(), 10)
		ret.buildDateTime = strconv.FormatInt(time.Now().Unix(), 10)
	}

	if ctx.Metrics != nil {
		ctx.Metrics.SetBuildDateTime(content)
	}
	err := ioutil.WriteFile(buildDateTimeFile, []byte(content), 0777)
	if err != nil {
		ctx.Fatalln("Failed to write BUILD_DATETIME to file:", err)
		ctx.Metrics.SetBuildDateTime(ret.buildDateTime)
	}
	ret.environ.Set("BUILD_DATETIME_FILE", buildDateTimeFile)