Skip to content

Commit

Permalink
Adds support for packaging to include [[buildpack.licenses]]
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryan Moran authored and sophiewigmore committed Jun 11, 2021
1 parent 609eae1 commit 532340d
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 30 deletions.
17 changes: 12 additions & 5 deletions cargo/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,18 @@ type ConfigStack struct {
}

type ConfigBuildpack struct {
ID string `toml:"id" json:"id,omitempty"`
Name string `toml:"name" json:"name,omitempty"`
Version string `toml:"version" json:"version,omitempty"`
Homepage string `toml:"homepage,omitempty" json:"homepage,omitempty"`
SHA256 string `toml:"-" json:"-"`
ID string `toml:"id" json:"id,omitempty"`
Name string `toml:"name" json:"name,omitempty"`
Version string `toml:"version" json:"version,omitempty"`
Homepage string `toml:"homepage,omitempty" json:"homepage,omitempty"`
Licenses []ConfigBuildpackLicense `toml:"licenses,omitempty" json:"licenses,omitempty"`

SHA256 string `toml:"-" json:"-"`
}

type ConfigBuildpackLicense struct {
Type string `toml:"type" json:"type"`
URI string `toml:"uri" json:"uri"`
}

type ConfigMetadata struct {
Expand Down
56 changes: 40 additions & 16 deletions cargo/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ func testConfig(t *testing.T, context spec.G, it spec.S) {
Name: "some-buildpack-name",
Version: "some-buildpack-version",
Homepage: "some-homepage-link",
Licenses: []cargo.ConfigBuildpackLicense{
{
Type: "some-license-type",
URI: "some-license-uri",
},
},
},
Stacks: []cargo.ConfigStack{
{
Expand Down Expand Up @@ -95,19 +101,25 @@ func testConfig(t *testing.T, context spec.G, it spec.S) {
},
})
Expect(err).NotTo(HaveOccurred())
Expect(buffer.String()).To(MatchTOML(`api = "0.2"
Expect(buffer.String()).To(MatchTOML(`
api = "0.2"
[buildpack]
id = "some-buildpack-id"
name = "some-buildpack-name"
version = "some-buildpack-version"
homepage = "some-homepage-link"
id = "some-buildpack-id"
name = "some-buildpack-name"
version = "some-buildpack-version"
homepage = "some-homepage-link"
[[buildpack.licenses]]
type = "some-license-type"
uri = "some-license-uri"
[metadata]
include-files = ["some-include-file", "other-include-file"]
pre-package = "some-pre-package-script.sh"
include-files = ["some-include-file", "other-include-file"]
pre-package = "some-pre-package-script.sh"
[metadata.default-versions]
some-dependency = "1.2.x"
some-dependency = "1.2.x"
[[metadata.dependencies]]
cpe = "some-cpe"
Expand Down Expand Up @@ -184,19 +196,25 @@ some-dependency = "1.2.x"

context("DecodeConfig", func() {
it("decodes TOML to config", func() {
tomlBuffer := strings.NewReader(`api = "0.2"
tomlBuffer := strings.NewReader(`
api = "0.2"
[buildpack]
id = "some-buildpack-id"
name = "some-buildpack-name"
version = "some-buildpack-version"
homepage = "some-homepage-link"
id = "some-buildpack-id"
name = "some-buildpack-name"
version = "some-buildpack-version"
homepage = "some-homepage-link"
[[buildpack.licenses]]
type = "some-license-type"
uri = "some-license-uri"
[metadata]
include-files = ["some-include-file", "other-include-file"]
pre-package = "some-pre-package-script.sh"
include-files = ["some-include-file", "other-include-file"]
pre-package = "some-pre-package-script.sh"
[metadata.default-versions]
some-dependency = "1.2.x"
some-dependency = "1.2.x"
[[metadata.some-map]]
key = "value"
Expand Down Expand Up @@ -244,6 +262,12 @@ some-dependency = "1.2.x"
Name: "some-buildpack-name",
Version: "some-buildpack-version",
Homepage: "some-homepage-link",
Licenses: []cargo.ConfigBuildpackLicense{
{
Type: "some-license-type",
URI: "some-license-uri",
},
},
},
Stacks: []cargo.ConfigStack{
{
Expand Down
18 changes: 9 additions & 9 deletions cargo/jam/internal/formatter.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,17 +100,17 @@ func printImplementation(writer io.Writer, config cargo.Config) {
}

func (f Formatter) Markdown(configs []cargo.Config) {
var familyConfig cargo.Config
for index, config := range configs {
if len(config.Order) > 0 {
familyConfig = config
configs = append(configs[:index], configs[index+1:]...)
break
//Language-family case
if len(configs) > 1 {
var familyConfig cargo.Config
for index, config := range configs {
if len(config.Order) > 0 {
familyConfig = config
configs = append(configs[:index], configs[index+1:]...)
break
}
}
}

//Language-family case
if (familyConfig.Buildpack != cargo.ConfigBuildpack{}) {
//Header section
fmt.Fprintf(f.writer, "## %s %s\n\n**ID:** `%s`\n\n", familyConfig.Buildpack.Name, familyConfig.Buildpack.Version, familyConfig.Buildpack.ID)
fmt.Fprintf(f.writer, "**Digest:** `%s`\n\n", familyConfig.Buildpack.SHA256)
Expand Down

0 comments on commit 532340d

Please sign in to comment.