Skip to content

Commit ac28cd9

Browse files
committed
Add support for log levels
1 parent 49c5427 commit ac28cd9

File tree

4 files changed

+34
-18
lines changed

4 files changed

+34
-18
lines changed

cmd/envbuilder/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"os"
1010
"time"
1111

12+
"github.com/coder/coder/codersdk"
1213
"github.com/coder/coder/codersdk/agentsdk"
1314
"github.com/coder/envbuilder"
1415
"github.com/spf13/cobra"
@@ -56,13 +57,14 @@ func main() {
5657
}
5758
}
5859

59-
options.Logger = func(format string, args ...interface{}) {
60+
options.Logger = func(level codersdk.LogLevel, format string, args ...interface{}) {
6061
output := fmt.Sprintf(format, args...)
6162
fmt.Fprintln(cmd.ErrOrStderr(), output)
6263
if sendLogs != nil {
6364
sendLogs(agentsdk.StartupLog{
6465
CreatedAt: time.Now(),
6566
Output: output,
67+
Level: level,
6668
})
6769
}
6870
}

envbuilder.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020

2121
"github.com/GoogleContainerTools/kaniko/pkg/config"
2222
"github.com/GoogleContainerTools/kaniko/pkg/executor"
23+
"github.com/coder/coder/codersdk"
2324
"github.com/containerd/containerd/platforms"
2425
"github.com/fatih/color"
2526
"github.com/go-git/go-billy/v5"
@@ -94,7 +95,7 @@ type Options struct {
9495
WorkspaceFolder string `env:"WORKSPACE_FOLDER"`
9596

9697
// Logger is the logger to use for all operations.
97-
Logger func(format string, args ...interface{})
98+
Logger func(level codersdk.LogLevel, format string, args ...interface{})
9899

99100
// Filesystem is the filesystem to use for all operations.
100101
// Defaults to the host filesystem.
@@ -122,10 +123,10 @@ func Run(ctx context.Context, options Options) error {
122123
now := time.Now()
123124
stageNum := stageNumber
124125
stageNumber++
125-
logf("#%d: %s", stageNum, fmt.Sprintf(format, args...))
126+
logf(codersdk.LogLevelInfo, "#%d: %s", stageNum, fmt.Sprintf(format, args...))
126127

127128
return func(format string, args ...interface{}) {
128-
logf("#%d: %s [%dms]", stageNum, fmt.Sprintf(format, args...), time.Since(now).Milliseconds())
129+
logf(codersdk.LogLevelInfo, "#%d: %s [%dms]", stageNum, fmt.Sprintf(format, args...), time.Since(now).Milliseconds())
129130
}
130131
}
131132

@@ -240,7 +241,7 @@ func Run(ctx context.Context, options Options) error {
240241
}
241242

242243
HijackLogrus(func(entry *logrus.Entry) {
243-
logf("#2: %s", entry.Message)
244+
logf(codersdk.LogLevelInfo, "#2: %s", entry.Message)
244245
})
245246

246247
build := func() (v1.Image, error) {
@@ -283,8 +284,8 @@ func Run(ctx context.Context, options Options) error {
283284
if !fallback {
284285
return err
285286
}
286-
logf("Failed to build with the provided context: %s", err)
287-
logf("Falling back to the default image...")
287+
logf(codersdk.LogLevelError, "Failed to build with the provided context: %s", err)
288+
logf(codersdk.LogLevelError, "Falling back to the default image...")
288289
err = defaultBuildParams()
289290
if err != nil {
290291
return err
@@ -305,7 +306,7 @@ func Run(ctx context.Context, options Options) error {
305306
username = buildParams.User
306307
}
307308
if username == "" {
308-
logf("#3: no user specified, using root")
309+
logf(codersdk.LogLevelWarn, "#3: no user specified, using root")
309310
}
310311
user, err := findUser(username)
311312
if err != nil {
@@ -345,7 +346,7 @@ func Run(ctx context.Context, options Options) error {
345346

346347
unsetOptionsEnv()
347348

348-
logf("=== Running the init command %q as the %q user...", options.InitScript, user.Username)
349+
logf(codersdk.LogLevelInfo, "=== Running the init command %q as the %q user...", options.InitScript, user.Username)
349350
cmd := exec.CommandContext(ctx, "/bin/sh", "-c", options.InitScript)
350351
cmd.Env = os.Environ()
351352
cmd.Dir = options.WorkspaceFolder
@@ -355,7 +356,7 @@ func Run(ctx context.Context, options Options) error {
355356
go func() {
356357
scanner := bufio.NewScanner(&buf)
357358
for scanner.Scan() {
358-
logf("%s", scanner.Text())
359+
logf(codersdk.LogLevelInfo, "%s", scanner.Text())
359360
}
360361
}()
361362
cmd.Stdout = &buf

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20230323204624-bf57
1212
require (
1313
github.com/GoogleContainerTools/kaniko v1.9.2
1414
github.com/breml/rootcerts v0.2.10
15-
github.com/coder/coder v0.20.2-0.20230323200229-2383f64d8929
15+
github.com/coder/coder v0.22.1-0.20230410192959-81e2b2500afa
1616
github.com/coder/retry v1.3.1-0.20230210155434-e90a2e1e091d
1717
github.com/containerd/containerd v1.7.0
1818
github.com/docker/docker v23.0.1+incompatible
19+
github.com/fatih/color v1.15.0
1920
github.com/go-git/go-billy/v5 v5.4.1
2021
github.com/go-git/go-git/v5 v5.6.1
22+
github.com/google/go-containerregistry v0.14.0
2123
github.com/sirupsen/logrus v1.9.0
2224
github.com/spf13/cobra v1.6.1
2325
github.com/stretchr/testify v1.8.2
@@ -26,7 +28,7 @@ require (
2628
)
2729

2830
require (
29-
cdr.dev/slog v1.4.2-0.20230228204227-60d22dceaf04 // indirect
31+
cdr.dev/slog v1.4.2 // indirect
3032
cloud.google.com/go/compute v1.18.0 // indirect
3133
cloud.google.com/go/compute/metadata v0.2.3 // indirect
3234
filippo.io/edwards25519 v1.0.0-rc.1 // indirect
@@ -69,7 +71,7 @@ require (
6971
github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 // indirect
7072
github.com/cilium/ebpf v0.9.1 // indirect
7173
github.com/cloudflare/circl v1.1.0 // indirect
72-
github.com/coder/terraform-provider-coder v0.6.21 // indirect
74+
github.com/coder/terraform-provider-coder v0.6.23 // indirect
7375
github.com/containerd/cgroups v1.1.0 // indirect
7476
github.com/containerd/continuity v0.3.0 // indirect
7577
github.com/containerd/fifo v1.1.0 // indirect
@@ -89,7 +91,6 @@ require (
8991
github.com/docker/go-units v0.5.0 // indirect
9092
github.com/ePirat/docker-credential-gitlabci v1.0.0 // indirect
9193
github.com/emirpasic/gods v1.18.1 // indirect
92-
github.com/fatih/color v1.15.0 // indirect
9394
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
9495
github.com/ghodss/yaml v1.0.0 // indirect
9596
github.com/go-chi/chi/v5 v5.0.7 // indirect
@@ -107,7 +108,6 @@ require (
107108
github.com/golang/protobuf v1.5.3 // indirect
108109
github.com/google/btree v1.1.2 // indirect
109110
github.com/google/go-cmp v0.5.9 // indirect
110-
github.com/google/go-containerregistry v0.14.0 // indirect
111111
github.com/google/uuid v1.3.0 // indirect
112112
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 // indirect
113113
github.com/hashicorp/errwrap v1.1.0 // indirect
@@ -140,7 +140,7 @@ require (
140140
github.com/json-iterator/go v1.1.12 // indirect
141141
github.com/karrick/godirwalk v1.16.1 // indirect
142142
github.com/kevinburke/ssh_config v1.2.0 // indirect
143-
github.com/klauspost/compress v1.16.0 // indirect
143+
github.com/klauspost/compress v1.16.3 // indirect
144144
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
145145
github.com/lib/pq v1.10.6 // indirect
146146
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -174,7 +174,7 @@ require (
174174
github.com/open-policy-agent/opa v0.44.0 // indirect
175175
github.com/opencontainers/go-digest v1.0.0 // indirect
176176
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
177-
github.com/opencontainers/runc v1.1.4 // indirect
177+
github.com/opencontainers/runc v1.1.5 // indirect
178178
github.com/opencontainers/runtime-spec v1.1.0-rc.1 // indirect
179179
github.com/opencontainers/selinux v1.11.0 // indirect
180180
github.com/otiai10/copy v1.7.0 // indirect
@@ -229,7 +229,7 @@ require (
229229
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
230230
go4.org/mem v0.0.0-20210711025021-927187094b94 // indirect
231231
go4.org/netipx v0.0.0-20220725152314-7e7bdc8411bf // indirect
232-
golang.org/x/crypto v0.6.0 // indirect
232+
golang.org/x/crypto v0.7.0 // indirect
233233
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
234234
golang.org/x/mod v0.9.0 // indirect
235235
golang.org/x/net v0.8.0 // indirect

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
cdr.dev/slog v1.4.2-0.20230228204227-60d22dceaf04 h1:d5MQ+iI2zk7t0HrHwBP9p7k2XfRsXnRclSe8Kpp3xOo=
22
cdr.dev/slog v1.4.2-0.20230228204227-60d22dceaf04/go.mod h1:YPVZsUbRMaLaPgme0RzlPWlC7fI7YmDj/j/kZLuvICs=
3+
cdr.dev/slog v1.4.2 h1:fIfiqASYQFJBZiASwL825atyzeA96NsqSxx2aL61P8I=
4+
cdr.dev/slog v1.4.2/go.mod h1:0EkH+GkFNxizNR+GAXUEdUHanxUH5t9zqPILmPM/Vn8=
35
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
46
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
57
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -244,6 +246,8 @@ github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoC
244246
github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
245247
github.com/coder/coder v0.20.2-0.20230323200229-2383f64d8929 h1:4z3I7q1+N4st+g/8lIYW9kpp79JYeyXPomtm+strNIY=
246248
github.com/coder/coder v0.20.2-0.20230323200229-2383f64d8929/go.mod h1:VhEgbx4xJ4FR1tSsABt+p0UwFzsRW+xIe17xADX2Xt4=
249+
github.com/coder/coder v0.22.1-0.20230410192959-81e2b2500afa h1:9o19S9sl4SlBqrwH3H60aSX10A9VrD4wsMgD93RBo4c=
250+
github.com/coder/coder v0.22.1-0.20230410192959-81e2b2500afa/go.mod h1:63FrVmS8jPGx892zW2LJ3j6hqipGE6Rc4oBLPfgsTlM=
247251
github.com/coder/kaniko v0.0.0-20230406190105-1c7cb9148d0e h1:J1cV6TxuIYJuRSf3aRQsbhekQTcF1t8jUjGHojz62sE=
248252
github.com/coder/kaniko v0.0.0-20230406190105-1c7cb9148d0e/go.mod h1:9spnlHjZQmvPavDUKdrSntKEKT1Z5aROo3Vbcx1TKCk=
249253
github.com/coder/retry v1.3.1-0.20230210155434-e90a2e1e091d h1:09JG37IgTB6n3ouX9BXdUiibGzkGGbslFuDZO9Ru9aw=
@@ -252,6 +256,8 @@ github.com/coder/tailscale v1.1.1-0.20230323204624-bf5761af4a29 h1:bZAOib5uT7ohT
252256
github.com/coder/tailscale v1.1.1-0.20230323204624-bf5761af4a29/go.mod h1:jpg+77g19FpXL43U1VoIqoSg1K/Vh5CVxycGldQ8KhA=
253257
github.com/coder/terraform-provider-coder v0.6.21 h1:TIH6+/VQFreT8q/CkRvpHtbIeM5cOAhuDS5Sh1Nm21Q=
254258
github.com/coder/terraform-provider-coder v0.6.21/go.mod h1:UIfU3bYNeSzJJvHyJ30tEKjD6Z9utloI+HUM/7n94CY=
259+
github.com/coder/terraform-provider-coder v0.6.23 h1:O2Rcj0umez4DfVdGnKZi63z1Xzxd0IQOn9VQDB8YU8g=
260+
github.com/coder/terraform-provider-coder v0.6.23/go.mod h1:UIfU3bYNeSzJJvHyJ30tEKjD6Z9utloI+HUM/7n94CY=
255261
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
256262
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
257263
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
@@ -635,6 +641,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
635641
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
636642
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
637643
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
644+
github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
645+
github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
638646
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
639647
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
640648
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a h1:+RR6SqnTkDLWyICxS1xpjCi/3dhyV+TgZwA6Ww3KncQ=
@@ -760,6 +768,8 @@ github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1
760768
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ=
761769
github.com/opencontainers/runc v1.1.4 h1:nRCz/8sKg6K6jgYAFLDlXzPeITBZJyX28DBVhWD+5dg=
762770
github.com/opencontainers/runc v1.1.4/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg=
771+
github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs=
772+
github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg=
763773
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
764774
github.com/opencontainers/runtime-spec v1.1.0-rc.1 h1:wHa9jroFfKGQqFHj0I1fMRKLl0pfj+ynAqBxo3v6u9w=
765775
github.com/opencontainers/runtime-spec v1.1.0-rc.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
@@ -985,6 +995,7 @@ go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI
985995
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
986996
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
987997
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
998+
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
988999
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
9891000
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
9901001
go4.org/intern v0.0.0-20211027215823-ae77deb06f29 h1:UXLjNohABv4S58tHmeuIZDO6e3mHpW2Dx33gaNt03LE=
@@ -1014,6 +1025,8 @@ golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0
10141025
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
10151026
golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
10161027
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
1028+
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
1029+
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
10171030
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
10181031
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
10191032
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=

0 commit comments

Comments
 (0)