Skip to content

Commit 09b60f5

Browse files
committed
Update dockerlib to support setting maintainers for individual images
1 parent f532e6f commit 09b60f5

File tree

5 files changed

+38
-4
lines changed

5 files changed

+38
-4
lines changed

dockerlib/commands.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,13 @@ func Update() error {
3535
}
3636

3737
for _, m := range manifests {
38+
if len(m.Maintainers) == 0 {
39+
m.Maintainers = getDefaultMaintainers()
40+
}
3841
header := dockerlib.Header{}
39-
header.Add("Maintainers", getDefaultMaintainer())
42+
for _, maintainer := range m.Maintainers {
43+
header.Add("Maintainers", maintainer)
44+
}
4045
header.Add("GitRepo", remoteRepo)
4146

4247
rev, err := latestRev(m.BaseDir)

dockerlib/dockerlib/header.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,33 @@ func (h *Header) Set(key, value string) {
4646
func (h *Header) Write(w io.Writer) error {
4747
for front := h.values.Front(); front != nil; front = front.Next() {
4848
kv := front.Value.(*keyValuePair)
49-
if _, err := fmt.Fprintf(w, "%s: %s\n", kv.key, strings.Join(kv.values, ", ")); err != nil {
49+
if kv.key == "Maintainers" {
50+
if err := h.writeMaintainers(w, kv.values); err != nil {
51+
return err
52+
}
53+
} else if _, err := fmt.Fprintf(w, "%s: %s\n", kv.key, strings.Join(kv.values, ", ")); err != nil {
5054
return err
5155
}
5256
}
5357
return nil
5458
}
59+
60+
func (h *Header) writeMaintainers(w io.Writer, values []string) error {
61+
if _, err := fmt.Fprint(w, "Maintainers: "); err != nil {
62+
return err
63+
}
64+
for i, value := range values {
65+
if _, err := fmt.Fprintf(w, "%s", value); err != nil {
66+
return err
67+
}
68+
if i < len(values)-1 {
69+
if _, err := fmt.Fprint(w, ",\n "); err != nil {
70+
return err
71+
}
72+
}
73+
}
74+
if _, err := fmt.Fprintln(w); err != nil {
75+
return err
76+
}
77+
return nil
78+
}

dockerlib/dockerlib/manifest.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
type ImageManifest struct {
1515
Name string `json:"name"`
1616
BaseDir string `json:"-"`
17+
Maintainers []string `json:"maintainers"`
1718
Versions []*Version `json:"versions"`
1819
Architectures []string `json:"architectures"`
1920
Variants []*Variant `json:"variants"`

dockerlib/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ func fetchUpstream() error {
3434
return nil
3535
}
3636

37-
func getDefaultMaintainer() string {
38-
return "Jonathan A. Sternberg <[email protected]> (@jsternberg)"
37+
func getDefaultMaintainers() []string {
38+
return []string{"Jonathan A. Sternberg <[email protected]> (@jsternberg)"}
3939
}
4040

4141
func main() {

telegraf/manifest.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"name": "telegraf",
3+
"maintainers": [
4+
"Jonathan A. Sternberg <[email protected]> (@jsternberg)",
5+
"Daniel Nelson <[email protected]> (@danielnelson)"
6+
],
37
"versions": ["1.11", "1.12", "1.13"],
48
"architectures": [
59
"amd64",

0 commit comments

Comments
 (0)