Skip to content

Commit 532340d

Browse files
Ryan Moransophiewigmore
Ryan Moran
authored andcommitted
Adds support for packaging to include [[buildpack.licenses]]
1 parent 609eae1 commit 532340d

File tree

3 files changed

+61
-30
lines changed

3 files changed

+61
-30
lines changed

cargo/config.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,18 @@ type ConfigStack struct {
2323
}
2424

2525
type ConfigBuildpack struct {
26-
ID string `toml:"id" json:"id,omitempty"`
27-
Name string `toml:"name" json:"name,omitempty"`
28-
Version string `toml:"version" json:"version,omitempty"`
29-
Homepage string `toml:"homepage,omitempty" json:"homepage,omitempty"`
30-
SHA256 string `toml:"-" json:"-"`
26+
ID string `toml:"id" json:"id,omitempty"`
27+
Name string `toml:"name" json:"name,omitempty"`
28+
Version string `toml:"version" json:"version,omitempty"`
29+
Homepage string `toml:"homepage,omitempty" json:"homepage,omitempty"`
30+
Licenses []ConfigBuildpackLicense `toml:"licenses,omitempty" json:"licenses,omitempty"`
31+
32+
SHA256 string `toml:"-" json:"-"`
33+
}
34+
35+
type ConfigBuildpackLicense struct {
36+
Type string `toml:"type" json:"type"`
37+
URI string `toml:"uri" json:"uri"`
3138
}
3239

3340
type ConfigMetadata struct {

cargo/config_test.go

+40-16
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ func testConfig(t *testing.T, context spec.G, it spec.S) {
3737
Name: "some-buildpack-name",
3838
Version: "some-buildpack-version",
3939
Homepage: "some-homepage-link",
40+
Licenses: []cargo.ConfigBuildpackLicense{
41+
{
42+
Type: "some-license-type",
43+
URI: "some-license-uri",
44+
},
45+
},
4046
},
4147
Stacks: []cargo.ConfigStack{
4248
{
@@ -95,19 +101,25 @@ func testConfig(t *testing.T, context spec.G, it spec.S) {
95101
},
96102
})
97103
Expect(err).NotTo(HaveOccurred())
98-
Expect(buffer.String()).To(MatchTOML(`api = "0.2"
104+
Expect(buffer.String()).To(MatchTOML(`
105+
api = "0.2"
106+
99107
[buildpack]
100-
id = "some-buildpack-id"
101-
name = "some-buildpack-name"
102-
version = "some-buildpack-version"
103-
homepage = "some-homepage-link"
108+
id = "some-buildpack-id"
109+
name = "some-buildpack-name"
110+
version = "some-buildpack-version"
111+
homepage = "some-homepage-link"
112+
113+
[[buildpack.licenses]]
114+
type = "some-license-type"
115+
uri = "some-license-uri"
104116
105117
[metadata]
106-
include-files = ["some-include-file", "other-include-file"]
107-
pre-package = "some-pre-package-script.sh"
118+
include-files = ["some-include-file", "other-include-file"]
119+
pre-package = "some-pre-package-script.sh"
108120
109121
[metadata.default-versions]
110-
some-dependency = "1.2.x"
122+
some-dependency = "1.2.x"
111123
112124
[[metadata.dependencies]]
113125
cpe = "some-cpe"
@@ -184,19 +196,25 @@ some-dependency = "1.2.x"
184196

185197
context("DecodeConfig", func() {
186198
it("decodes TOML to config", func() {
187-
tomlBuffer := strings.NewReader(`api = "0.2"
199+
tomlBuffer := strings.NewReader(`
200+
api = "0.2"
201+
188202
[buildpack]
189-
id = "some-buildpack-id"
190-
name = "some-buildpack-name"
191-
version = "some-buildpack-version"
192-
homepage = "some-homepage-link"
203+
id = "some-buildpack-id"
204+
name = "some-buildpack-name"
205+
version = "some-buildpack-version"
206+
homepage = "some-homepage-link"
207+
208+
[[buildpack.licenses]]
209+
type = "some-license-type"
210+
uri = "some-license-uri"
193211
194212
[metadata]
195-
include-files = ["some-include-file", "other-include-file"]
196-
pre-package = "some-pre-package-script.sh"
213+
include-files = ["some-include-file", "other-include-file"]
214+
pre-package = "some-pre-package-script.sh"
197215
198216
[metadata.default-versions]
199-
some-dependency = "1.2.x"
217+
some-dependency = "1.2.x"
200218
201219
[[metadata.some-map]]
202220
key = "value"
@@ -244,6 +262,12 @@ some-dependency = "1.2.x"
244262
Name: "some-buildpack-name",
245263
Version: "some-buildpack-version",
246264
Homepage: "some-homepage-link",
265+
Licenses: []cargo.ConfigBuildpackLicense{
266+
{
267+
Type: "some-license-type",
268+
URI: "some-license-uri",
269+
},
270+
},
247271
},
248272
Stacks: []cargo.ConfigStack{
249273
{

cargo/jam/internal/formatter.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -100,17 +100,17 @@ func printImplementation(writer io.Writer, config cargo.Config) {
100100
}
101101

102102
func (f Formatter) Markdown(configs []cargo.Config) {
103-
var familyConfig cargo.Config
104-
for index, config := range configs {
105-
if len(config.Order) > 0 {
106-
familyConfig = config
107-
configs = append(configs[:index], configs[index+1:]...)
108-
break
103+
//Language-family case
104+
if len(configs) > 1 {
105+
var familyConfig cargo.Config
106+
for index, config := range configs {
107+
if len(config.Order) > 0 {
108+
familyConfig = config
109+
configs = append(configs[:index], configs[index+1:]...)
110+
break
111+
}
109112
}
110-
}
111113

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

0 commit comments

Comments
 (0)