From 372561f545e2dd16b1f85afcebdba6c9e8eb6cd3 Mon Sep 17 00:00:00 2001 From: Brahm Lower Date: Fri, 13 Feb 2026 23:35:09 -0800 Subject: [PATCH 1/2] fix: schema command correctly writes modeline to values file --- pkg/schema/modeline.go | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/pkg/schema/modeline.go b/pkg/schema/modeline.go index a393fbe..4a3421e 100644 --- a/pkg/schema/modeline.go +++ b/pkg/schema/modeline.go @@ -4,58 +4,23 @@ import ( "fmt" "helmvalues/pkg/charts" "helmvalues/pkg/modeline" - "io" - "os" "github.com/sirupsen/logrus" ) -func NewModelineWriter(filepath string) (*ModelineWriter, error) { - f, err := os.OpenFile(filepath, os.O_RDONLY, 0644) - if err != nil { - return nil, err - } - defer f.Close() - - content, err := io.ReadAll(f) - if err != nil { - return nil, err - } - - ml := &ModelineWriter{ - filepath: filepath, - content: string(content), - } - - return ml, nil -} - -type ModelineWriter struct { - filepath string - content string -} - -func (w *ModelineWriter) SetModeline(value *modeline.Modeline) { - w.content = value.String() + "\n" + w.content -} - -func (w *ModelineWriter) WriteToFile() error { - return os.WriteFile(w.filepath, []byte(w.content), 0644) -} - func WriteSchemaModeline(logger *logrus.Logger, chart *charts.Chart, valuesPath string, dryRun bool) error { - mlWriter, err := NewModelineWriter(valuesPath) + fileManager, err := modeline.NewFileModelineManager(valuesPath) if err != nil { return fmt.Errorf("failed to read values file: %w", err) } ml := modeline.NewModeline("yaml-language-server", "$schema", chart.SchemaFilePath()) - mlWriter.SetModeline(ml) + fileManager.SetModeline(ml) if dryRun { logger.Infof("schema: %s: dry-run enabled, skipping modeline write to %s", chart.Details.Name, valuesPath) return nil } - return mlWriter.WriteToFile() + return fileManager.Write(false) } From 67983460a10ecc6061d619d3877f2c93c3749669 Mon Sep 17 00:00:00 2001 From: Brahm Lower Date: Fri, 13 Feb 2026 23:52:34 -0800 Subject: [PATCH 2/2] fix: schema modeline writes correct schema path --- pkg/schema/modeline.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/schema/modeline.go b/pkg/schema/modeline.go index 4a3421e..3be637e 100644 --- a/pkg/schema/modeline.go +++ b/pkg/schema/modeline.go @@ -14,7 +14,7 @@ func WriteSchemaModeline(logger *logrus.Logger, chart *charts.Chart, valuesPath return fmt.Errorf("failed to read values file: %w", err) } - ml := modeline.NewModeline("yaml-language-server", "$schema", chart.SchemaFilePath()) + ml := modeline.NewModeline("yaml-language-server", "$schema", "values.schema.json") fileManager.SetModeline(ml) if dryRun {