@@ -18,6 +18,7 @@ import (
1818 "fmt"
1919 "io"
2020 "os"
21+ "path/filepath"
2122 "slices"
2223 "strings"
2324
@@ -141,8 +142,8 @@ func AsMain(input any, opts ...Option) error {
141142// handleHelp renders help text to STDOUT based on registered docs.
142143func handleHelp (cfg * mainConfig ) error {
143144 if cfg .readme == nil && cfg .metadata == nil {
144- fmt .Fprint (os .Stdout , "No documentation available. Pass fn.WithDocs to fn.AsMain to enable --help.\n " )
145- return nil
145+ _ , err := fmt .Fprint (os .Stdout , "No documentation available. Pass fn.WithDocs to fn.AsMain to enable --help.\n " )
146+ return err
146147 }
147148
148149 sections := docs .ParseMarkers (cfg .readme )
@@ -152,15 +153,14 @@ func handleHelp(cfg *mainConfig) error {
152153 meta = docs.Metadata {}
153154 }
154155
155- docs .RenderHelp (os .Stdout , sections , meta )
156- return nil
156+ return docs .RenderHelp (os .Stdout , sections , meta )
157157}
158158
159159// handleDoc renders JSON documentation to STDOUT based on registered docs.
160160func handleDoc (cfg * mainConfig ) error {
161161 if cfg .readme == nil && cfg .metadata == nil {
162- fmt .Fprint (os .Stdout , "{}" )
163- return nil
162+ _ , err := fmt .Fprint (os .Stdout , "{}" )
163+ return err
164164 }
165165
166166 sections := docs .ParseMarkers (cfg .readme )
@@ -183,20 +183,18 @@ func readFilesAsResourceList(paths []string) (*ResourceList, error) {
183183 FunctionConfig : NewEmptyKubeObject (),
184184 }
185185 for _ , path := range paths {
186- data , err := os .ReadFile (path )
186+ cleanPath := filepath .Clean (path )
187+ data , err := os .ReadFile (cleanPath )
187188 if err != nil {
188- if os .IsNotExist (err ) {
189- return nil , fmt .Errorf ("file not found: %s" , path )
190- }
191- return nil , fmt .Errorf ("failed to read file %s: %v" , path , err )
189+ return nil , fmt .Errorf ("file %s: %w" , path , err )
192190 }
193191 // Empty files are valid — proceed with no items from this file.
194192 if len (strings .TrimSpace (string (data ))) == 0 {
195193 continue
196194 }
197195 objects , err := ParseKubeObjects (data )
198196 if err != nil {
199- return nil , fmt .Errorf ("failed to parse KRM resources from %s: %v " , path , err )
197+ return nil , fmt .Errorf ("failed to parse KRM resources from %s: %w " , path , err )
200198 }
201199 for _ , obj := range objects {
202200 rl .Items = append (rl .Items , obj )
0 commit comments