Skip to content

Commit 3225f01

Browse files
authored
Merge pull request #16 from aristanetworks/master
Allow to specify custom name for Dockerfile
2 parents 5aeabff + 49776e3 commit 3225f01

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

manifest/example_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,18 @@ s390x-GitCommit: b6c460e7cd79b595267870a98013ec3078b490df
5454
i386-GitFetch: refs/heads/i386
5555
ppc64le-Directory: 1.5/ppc64le
5656
57+
Tags: 1.5-alpine
58+
GitCommit: d7e2a8d90a9b8f5dfd5bcd428e0c33b68c40cc19
59+
Directory: 1.5
60+
File: Dockerfile.alpine
61+
s390x-File: Dockerfile.alpine.s390x.bad-boy
62+
5763
SharedTags: raspbian
5864
GitCommit: deadbeefdeadbeefdeadbeefdeadbeefdeadbeef
5965
Tags: raspbian-s390x
6066
Architectures: s390x, i386
67+
File: Dockerfile-raspbian
68+
s390x-File: Dockerfile
6169
6270
6371
`)))
@@ -113,15 +121,24 @@ i: g@h j
113121
// ppc64le-Directory: 1.5/ppc64le
114122
// s390x-GitCommit: b6c460e7cd79b595267870a98013ec3078b490df
115123
//
124+
// Tags: 1.5-alpine
125+
// GitCommit: d7e2a8d90a9b8f5dfd5bcd428e0c33b68c40cc19
126+
// Directory: 1.5
127+
// File: Dockerfile.alpine
128+
// s390x-File: Dockerfile.alpine.s390x.bad-boy
129+
//
116130
// Tags: raspbian-s390x
117131
// SharedTags: raspbian
118132
// Architectures: i386, s390x
119133
// GitCommit: deadbeefdeadbeefdeadbeefdeadbeefdeadbeef
134+
// File: Dockerfile-raspbian
135+
// s390x-File: Dockerfile
120136
//
121137
// Shared Tag Groups:
122138
//
123139
// - latest
124140
// - 1.6.1, 1.6, 1
141+
// - 1.5-alpine
125142
//
126143
// - 1.5.3-debian, 1.5-debian
127144
// - 1.5.3, 1.5

manifest/rfc2822.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ type Manifest2822Entry struct {
3838
GitFetch string
3939
GitCommit string
4040
Directory string
41+
File string
4142

4243
// architecture-specific versions of the above fields
4344
ArchValues map[string]string
@@ -56,6 +57,7 @@ var (
5657

5758
GitFetch: "refs/heads/master",
5859
Directory: ".",
60+
File: "Dockerfile",
5961
}
6062
)
6163

@@ -81,7 +83,7 @@ func (entry Manifest2822Entry) Clone() Manifest2822Entry {
8183

8284
func (entry *Manifest2822Entry) SeedArchValues() {
8385
for field, val := range entry.Paragraph.Values {
84-
if strings.HasSuffix(field, "-GitRepo") || strings.HasSuffix(field, "-GitFetch") || strings.HasSuffix(field, "-GitCommit") || strings.HasSuffix(field, "-Directory") {
86+
if strings.HasSuffix(field, "-GitRepo") || strings.HasSuffix(field, "-GitFetch") || strings.HasSuffix(field, "-GitCommit") || strings.HasSuffix(field, "-Directory") || strings.HasSuffix(field, "-File") {
8587
entry.ArchValues[field] = val
8688
}
8789
}
@@ -118,7 +120,7 @@ func (a Manifest2822Entry) SameBuildArtifacts(b Manifest2822Entry) bool {
118120
}
119121
}
120122

121-
return a.ArchitecturesString() == b.ArchitecturesString() && a.GitRepo == b.GitRepo && a.GitFetch == b.GitFetch && a.GitCommit == b.GitCommit && a.Directory == b.Directory && a.ConstraintsString() == b.ConstraintsString()
123+
return a.ArchitecturesString() == b.ArchitecturesString() && a.GitRepo == b.GitRepo && a.GitFetch == b.GitFetch && a.GitCommit == b.GitCommit && a.Directory == b.Directory && a.File == b.File && a.ConstraintsString() == b.ConstraintsString()
122124
}
123125

124126
// returns a list of architecture-specific fields in an Entry
@@ -160,6 +162,9 @@ func (entry Manifest2822Entry) ClearDefaults(defaults Manifest2822Entry) Manifes
160162
if entry.Directory == defaults.Directory {
161163
entry.Directory = ""
162164
}
165+
if entry.File == defaults.File {
166+
entry.File = ""
167+
}
163168
for _, key := range defaults.archFields() {
164169
if defaults.ArchValues[key] == entry.ArchValues[key] {
165170
delete(entry.ArchValues, key)
@@ -197,6 +202,9 @@ func (entry Manifest2822Entry) String() string {
197202
if str := entry.Directory; str != "" {
198203
ret = append(ret, "Directory: "+str)
199204
}
205+
if str := entry.File; str != "" {
206+
ret = append(ret, "File: "+str)
207+
}
200208
for _, key := range entry.archFields() {
201209
ret = append(ret, key+": "+entry.ArchValues[key])
202210
}
@@ -263,6 +271,13 @@ func (entry Manifest2822Entry) ArchDirectory(arch string) string {
263271
return entry.Directory
264272
}
265273

274+
func (entry Manifest2822Entry) ArchFile(arch string) string {
275+
if val, ok := entry.ArchValues[arch+"-File"]; ok && val != "" {
276+
return val
277+
}
278+
return entry.File
279+
}
280+
266281
func (entry Manifest2822Entry) HasTag(tag string) bool {
267282
for _, existingTag := range entry.Tags {
268283
if tag == existingTag {

0 commit comments

Comments
 (0)