Skip to content

Commit

Permalink
feat(bake): generate better file names
Browse files Browse the repository at this point in the history
fixes: #437
  • Loading branch information
crhntr committed Jul 24, 2024
1 parent 2322221 commit 0126642
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 26 deletions.
22 changes: 9 additions & 13 deletions internal/commands/bake.go
Original file line number Diff line number Diff line change
Expand Up @@ -348,27 +348,23 @@ func (b *Bake) loadFlags(args []string) error {
}

if shouldReadVersionFile(b, args) {
fileInfo, err := b.fs.Stat("version")
// TODO: test this
if fileInfo != nil && err == nil {
var file File
file, err = b.fs.Open(fileInfo.Name())
if err != nil && file == nil {
return err
}
file, err := b.fs.Open("version")
if err == nil {
defer closeAndIgnoreError(file)

versionBuf := make([]byte, fileInfo.Size())
_, _ = file.Read(versionBuf)
versionBuf, _ := io.ReadAll(file)
b.Options.Version = strings.TrimSpace(string(versionBuf))
}
}

if shouldGenerateTileFileName(b, args) {
b.Options.OutputFile = "tile.pivotal"
prefix := "tile"
if b.Options.TileName != "" {
prefix = b.Options.TileName
}
if b.Options.Version != "" {
b.Options.OutputFile = "tile-" + b.Options.Version + ".pivotal"
prefix += "-" + b.Options.Version
}
b.Options.OutputFile = prefix + ".pivotal"
}

if shouldNotUseDefaultKilnfileFlag(args) {
Expand Down
56 changes: 43 additions & 13 deletions internal/commands/bake_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import (
"testing"
"time"

"github.com/go-git/go-billy/v5"
"github.com/go-git/go-billy/v5/memfs"

"github.com/pivotal-cf/kiln/pkg/cargo"

"github.com/pivotal-cf/kiln/pkg/bake"
Expand Down Expand Up @@ -51,7 +54,8 @@ var _ = Describe("Bake", func() {
fakeTileWriter *fakes.TileWriter
fakeChecksummer *fakes.Checksummer

fakeFilesystem *fakes.FileSystem
fakeFilesystem billy.Filesystem

fakeHomeDirFunc func() (string, error)

otherReleasesDirectory string
Expand Down Expand Up @@ -97,15 +101,14 @@ var _ = Describe("Bake", func() {
fakeJobsService = &fakes.MetadataTemplatesParser{}
fakePropertiesService = &fakes.MetadataTemplatesParser{}
fakeRuntimeConfigsService = &fakes.MetadataTemplatesParser{}
fakeFilesystem = &fakes.FileSystem{}
fakeVersionInfo := &fakes.FileInfo{}
fileVersion := "some-version"
fakeVersionInfo.SizeReturns(int64(len(fileVersion)))
fakeVersionInfo.NameReturns("version")
fakeFilesystem.StatReturns(fakeVersionInfo, nil)
result1 := &fakes.File{}
result1.ReadReturns(0, nil)
fakeFilesystem.OpenReturns(result1, nil)

{
fakeFilesystem = memfs.New()
file, _ := fakeFilesystem.Create("version")
_, _ = file.Write([]byte("1.2.3"))
_ = file.Close()
}

fakeHomeDirFunc = func() (string, error) {
return "/home/", nil
}
Expand Down Expand Up @@ -399,13 +402,40 @@ var _ = Describe("Bake", func() {
})

FContext("when the output flag is not set", func() {
When("the tile-name flag is not provided", func() {
When("no version is provided", func() {
It("uses the tile as the filename prefix", func() {
err := bake.Execute([]string{})
_ = fakeFilesystem.Remove("version")
err := bake.Execute([]string{
"--metadata", "some-metadata",
})
Expect(err).To(Not(HaveOccurred()))
Expect(fakeTileWriter.WriteCallCount()).To(Equal(1))
_, input := fakeTileWriter.WriteArgsForCall(0)
Expect(input.OutputFile).To(Equal(filepath.Join("tile.pivotal")))
})
})
When("the version flag is provided", func() {
It("uses the tile as the filename prefix", func() {
err := bake.Execute([]string{
"--metadata", "some-metadata",
"--version", "some-version",
})
Expect(err).To(Not(HaveOccurred()))
Expect(fakeTileWriter.WriteCallCount()).To(Equal(1))
_, input := fakeTileWriter.WriteArgsForCall(0)
Expect(input.OutputFile).To(Equal(filepath.Join("tile-some-version.pivotal")))
})
})
When("the tile name is provided", func() {
It("uses the tile as the filename prefix", func() {
err := bake.Execute([]string{
"--metadata", "some-metadata",
"--tile-name", "p-rune",
})
Expect(err).To(Not(HaveOccurred()))
Expect(fakeTileWriter.WriteCallCount()).To(Equal(1))
_, input := fakeTileWriter.WriteArgsForCall(0)
Expect(input.OutputFile).To(Equal(filepath.Join("tile-v1.2.3.pivotal")))
Expect(input.OutputFile).To(Equal(filepath.Join("p-rune-1.2.3.pivotal")))
})
})
})
Expand Down

0 comments on commit 0126642

Please sign in to comment.