package nix import ( "context" "iter" ) // Build builds all entries yielded by installables. func Build(ctx Context, installables iter.Seq[string]) error { c, cancel := context.WithCancel(ctx.Unwrap()) defer cancel() stdout, stderr := ctx.Streams() cmd := ctx.Nix(c, CommandBuild, FlagKeepGoing, FlagNoLink, FlagStdin) if stdout != nil { cmd.Stdout(stdout) cmd.AppendArgs(FlagPrintBuildLogs) } else { cmd.AppendArgs(FlagQuiet) } if stderr != nil { cmd.Stderr(stderr) cmd.AppendArgs(FlagVerbose) } _, err := ctx.WriteStdin(cmd, installables, nil) return err }