Skip to content

Commit d06023f

Browse files
chore: include merged, com.coder to coder, UnmarshallJSON
1 parent 08f0f9c commit d06023f

File tree

6 files changed

+25
-19
lines changed

6 files changed

+25
-19
lines changed

agent/agentcontainers/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1131,7 +1131,7 @@ func (api *API) injectSubAgentIntoContainerLocked(ctx context.Context, dc coders
11311131
); err != nil {
11321132
api.logger.Error(ctx, "unable to read devcontainer config", slog.Error(err))
11331133
} else {
1134-
coderCustomization := config.Configuration.Customizations.Coder
1134+
coderCustomization := config.MergedConfiguration.Customizations.Coder
11351135
if coderCustomization != nil {
11361136
displayApps = coderCustomization.DisplayApps
11371137
apps = coderCustomization.Apps

agent/agentcontainers/api_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1572,7 +1572,7 @@ func TestAPI(t *testing.T) {
15721572
fSAC = &fakeSubAgentClient{createErrC: make(chan error, 1)}
15731573
fDCCLI = &fakeDevcontainerCLI{
15741574
readConfig: agentcontainers.DevcontainerConfig{
1575-
Configuration: agentcontainers.DevcontainerConfiguration{
1575+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
15761576
Customizations: agentcontainers.DevcontainerCustomizations{
15771577
Coder: tt.customization,
15781578
},

agent/agentcontainers/devcontainercli.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ import (
1919
// Unfortunately we cannot make use of `dcspec` as the output doesn't appear to
2020
// match.
2121
type DevcontainerConfig struct {
22-
Configuration DevcontainerConfiguration `json:"configuration"`
22+
MergedConfiguration DevcontainerConfiguration `json:"mergedConfiguration"`
2323
}
2424

2525
type DevcontainerConfiguration struct {
2626
Customizations DevcontainerCustomizations `json:"customizations,omitempty"`
2727
}
2828

2929
type DevcontainerCustomizations struct {
30-
Coder *CoderCustomization `json:"com.coder,omitempty"`
30+
Coder *CoderCustomization `json:"coder,omitempty"`
3131
}
3232

3333
type CoderCustomization struct {
@@ -197,23 +197,17 @@ func (d *devcontainerCLI) Up(ctx context.Context, workspaceFolder, configPath st
197197
cmd.Stderr = io.MultiWriter(stderrWriters...)
198198

199199
if err := cmd.Run(); err != nil {
200-
result, err2 := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
200+
_, err2 := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
201201
if err2 != nil {
202202
err = errors.Join(err, err2)
203203
}
204-
if err2 := result.Err(); err2 != nil {
205-
err = errors.Join(err, err2)
206-
}
207204
return "", err
208205
}
209206

210207
result, err := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
211208
if err != nil {
212209
return "", err
213210
}
214-
if err := result.Err(); err != nil {
215-
return "", err
216-
}
217211

218212
return result.ContainerID, nil
219213
}
@@ -261,7 +255,7 @@ func (d *devcontainerCLI) ReadConfig(ctx context.Context, workspaceFolder, confi
261255
conf := applyDevcontainerCLIReadConfigOptions(opts)
262256
logger := d.logger.With(slog.F("workspace_folder", workspaceFolder), slog.F("config_path", configPath))
263257

264-
args := []string{"read-configuration"}
258+
args := []string{"read-configuration", "--include-merged-configuration"}
265259
if workspaceFolder != "" {
266260
args = append(args, "--workspace-folder", workspaceFolder)
267261
}
@@ -341,6 +335,18 @@ type devcontainerCLIResult struct {
341335
Description string `json:"description"`
342336
}
343337

338+
func (r *devcontainerCLIResult) UnmarshalJSON(data []byte) error {
339+
type wrapperResult devcontainerCLIResult
340+
341+
var wrappedResult wrapperResult
342+
if err := json.Unmarshal(data, &wrappedResult); err != nil {
343+
return err
344+
}
345+
346+
*r = devcontainerCLIResult(wrappedResult)
347+
return r.Err()
348+
}
349+
344350
func (r devcontainerCLIResult) Err() error {
345351
if r.Outcome == "success" {
346352
return nil

agent/agentcontainers/devcontainercli_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,10 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
253253
logFile: "read-config-with-coder-customization.log",
254254
workspaceFolder: "/test/workspace",
255255
configPath: "",
256-
wantArgs: "read-configuration --workspace-folder /test/workspace",
256+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace",
257257
wantError: false,
258258
wantConfig: agentcontainers.DevcontainerConfig{
259-
Configuration: agentcontainers.DevcontainerConfiguration{
259+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
260260
Customizations: agentcontainers.DevcontainerCustomizations{
261261
Coder: &agentcontainers.CoderCustomization{
262262
DisplayApps: []codersdk.DisplayApp{
@@ -273,10 +273,10 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
273273
logFile: "read-config-without-coder-customization.log",
274274
workspaceFolder: "/test/workspace",
275275
configPath: "/test/config.json",
276-
wantArgs: "read-configuration --workspace-folder /test/workspace --config /test/config.json",
276+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace --config /test/config.json",
277277
wantError: false,
278278
wantConfig: agentcontainers.DevcontainerConfig{
279-
Configuration: agentcontainers.DevcontainerConfiguration{
279+
MergedConfiguration: agentcontainers.DevcontainerConfiguration{
280280
Customizations: agentcontainers.DevcontainerCustomizations{
281281
Coder: nil,
282282
},
@@ -288,7 +288,7 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
288288
logFile: "read-config-error-not-found.log",
289289
workspaceFolder: "/nonexistent/workspace",
290290
configPath: "",
291-
wantArgs: "read-configuration --workspace-folder /nonexistent/workspace",
291+
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /nonexistent/workspace",
292292
wantError: true,
293293
wantConfig: agentcontainers.DevcontainerConfig{},
294294
},

agent/agentcontainers/testdata/devcontainercli/readconfig/read-config-with-coder-customization.log

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/agentcontainers/testdata/devcontainercli/readconfig/read-config-without-coder-customization.log

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy