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

Commit a17ac963 authored by Dan Willemsen's avatar Dan Willemsen
Browse files

Improve error handling around username/hostname

If this couldn't read the current user, it would print a generic
message, then proceed to dereference the invalid user struct :(

Provide somewhat reasonable defaults, and better error messages instead.

Test: m nothing
Test: run docker with misconfigured user
Change-Id: I21af77c7d8d1d2d27cb04546667eb1094c62a7a1
parent 865171ed
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -104,17 +104,20 @@ func runKati(ctx Context, config Config, extraSuffix string, args []string, envF
	envFunc(cmd.Environment)

	if _, ok := cmd.Environment.Get("BUILD_USERNAME"); !ok {
		u, err := user.Current()
		if err != nil {
			ctx.Println("Failed to get current user")
		username := "unknown"
		if u, err := user.Current(); err == nil {
			username = u.Username
		} else {
			ctx.Println("Failed to get current user:", err)
		}
		cmd.Environment.Set("BUILD_USERNAME", u.Username)
		cmd.Environment.Set("BUILD_USERNAME", username)
	}

	if _, ok := cmd.Environment.Get("BUILD_HOSTNAME"); !ok {
		hostname, err := os.Hostname()
		if err != nil {
			ctx.Println("Failed to read hostname")
			ctx.Println("Failed to read hostname:", err)
			hostname = "unknown"
		}
		cmd.Environment.Set("BUILD_HOSTNAME", hostname)
	}