From 8c9c93aca6aa5c98a9f5b87b52d014db2ed54c7d Mon Sep 17 00:00:00 2001 From: Forest Eckhardt Date: Tue, 2 May 2023 16:42:16 +0000 Subject: [PATCH] Adds a message to packit.Fail in detect --- detect.go | 13 ++++++------- detect_test.go | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/detect.go b/detect.go index 20b60f4..278265d 100644 --- a/detect.go +++ b/detect.go @@ -2,10 +2,10 @@ package rake import ( "fmt" - "os" "path/filepath" "github.com/paketo-buildpacks/packit/v2" + "github.com/paketo-buildpacks/packit/v2/fs" ) type BuildPlanMetadata struct { @@ -17,20 +17,19 @@ func Detect(gemfileParser Parser) packit.DetectFunc { rakefiles := []string{"Rakefile", "Rakefile.rb", "rakefile", "rakefile.rb"} rakeFileExists := false for _, file := range rakefiles { - _, err := os.Stat(filepath.Join(context.WorkingDir, file)) + exists, err := fs.Exists(filepath.Join(context.WorkingDir, file)) if err != nil { - if os.IsNotExist(err) { - continue - } return packit.DetectResult{}, fmt.Errorf("failed to stat %s: %w", file, err) - } else { + } + + if exists { rakeFileExists = true break } } if !rakeFileExists { - return packit.DetectResult{}, packit.Fail + return packit.DetectResult{}, packit.Fail.WithMessage("no 'Rakefile', 'Rakefile.rb', 'rakefile', or 'rakefile.rb' file found") } hasRakeGem, err := gemfileParser.Parse(filepath.Join(context.WorkingDir, "Gemfile")) diff --git a/detect_test.go b/detect_test.go index 131fa69..cffd64a 100644 --- a/detect_test.go +++ b/detect_test.go @@ -223,7 +223,7 @@ func testDetect(t *testing.T, context spec.G, it spec.S) { _, err := detect(packit.DetectContext{ WorkingDir: workingDir, }) - Expect(err).To(MatchError(packit.Fail)) + Expect(err).To(MatchError(packit.Fail.WithMessage("no 'Rakefile', 'Rakefile.rb', 'rakefile', or 'rakefile.rb' file found"))) }) })