Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 5630acc

Browse files
committed
Fix after fork merged in
- Move metadata types to a new package - Fix the rest Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 834f93c commit 5630acc

10 files changed

Lines changed: 47 additions & 45 deletions

File tree

internal/helm/helm.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88
"regexp"
99
"strings"
1010

11-
yaml "gopkg.in/yaml.v2"
12-
1311
"github.com/docker/app/internal"
1412
"github.com/docker/app/internal/compose"
1513
"github.com/docker/app/internal/helm/templateconversion"
@@ -19,11 +17,13 @@ import (
1917
"github.com/docker/app/internal/slices"
2018
"github.com/docker/app/render"
2119
"github.com/docker/app/types"
20+
"github.com/docker/app/types/metadata"
2221
"github.com/docker/cli/cli/command/stack/kubernetes"
2322
"github.com/docker/cli/cli/compose/loader"
2423
"github.com/docker/cli/kubernetes/compose/v1beta1"
2524
"github.com/docker/cli/kubernetes/compose/v1beta2"
2625
"github.com/pkg/errors"
26+
yaml "gopkg.in/yaml.v2"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
)
2929

@@ -210,9 +210,9 @@ func helmRender(app *types.App, targetDir string, env map[string]string, stackVe
210210
return ioutil.WriteFile(filepath.Join(targetDir, "templates", "stack.yaml"), stackData, 0644)
211211
}
212212

213-
func makeChart(metadata []byte, targetDir string) error {
214-
var meta types.AppMetadata
215-
err := yaml.Unmarshal(metadata, &meta)
213+
func makeChart(data []byte, targetDir string) error {
214+
var meta metadata.AppMetadata
215+
err := yaml.Unmarshal(data, &meta)
216216
if err != nil {
217217
return errors.Wrap(err, "failed to parse application metadata")
218218
}
@@ -272,7 +272,7 @@ type helmMeta struct {
272272
Maintainers []helmMaintainer
273273
}
274274

275-
func toHelmMeta(meta *types.AppMetadata) (*helmMeta, error) {
275+
func toHelmMeta(meta *metadata.AppMetadata) (*helmMeta, error) {
276276
res := &helmMeta{
277277
Name: meta.Name,
278278
Version: meta.Version,

internal/inspect/inspect.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ import (
88

99
"github.com/docker/app/internal/settings"
1010
"github.com/docker/app/types"
11+
"github.com/docker/app/types/metadata"
1112
"github.com/pkg/errors"
1213
yaml "gopkg.in/yaml.v2"
1314
)
1415

1516
// Inspect dumps the metadata of an app
1617
func Inspect(out io.Writer, app *types.App) error {
17-
var meta types.AppMetadata
18+
var meta metadata.AppMetadata
1819
err := yaml.Unmarshal(app.Metadata(), &meta)
1920
if err != nil {
2021
return errors.Wrap(err, "failed to parse application metadata")

internal/inspect/inspect_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88

99
"github.com/docker/app/internal"
1010
"github.com/docker/app/types"
11-
1211
"gotest.tools/assert"
1312
is "gotest.tools/assert/cmp"
1413
"gotest.tools/fs"

internal/packager/fork.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import (
99
"strings"
1010

1111
"github.com/docker/app/internal"
12-
"github.com/docker/app/internal/types"
13-
12+
"github.com/docker/app/types/metadata"
1413
"github.com/pkg/errors"
1514
log "github.com/sirupsen/logrus"
1615
yaml "gopkg.in/yaml.v2"
@@ -42,7 +41,9 @@ func Fork(originName, forkName, outputDir string, maintainers []string) error {
4241
// create app dir in output-dir
4342
namespace, name := splitPackageName(forkName)
4443
appPath := filepath.Join(outputDir, internal.DirNameFromAppName(name))
45-
os.MkdirAll(appPath, 0755)
44+
if err := os.MkdirAll(appPath, 0755); err != nil {
45+
return err
46+
}
4647

4748
// iterate tar contents
4849
tarfile, err := os.Open(filepath.Join(tmpdir, internal.DirNameFromAppName(imgRef.Name)))
@@ -87,11 +88,11 @@ func updateMetadata(raw []byte, namespace, name string, maintainers []string) ([
8788
}
8889
// insert retrieved data in fork history section
8990
log.Debug("Generating fork metadata")
90-
newMeta := types.MetadataFrom(
91+
newMeta := metadata.From(
9192
meta,
92-
types.WithName(name),
93-
types.WithNamespace(namespace),
94-
types.WithMaintainers(parseMaintainersData(maintainers)),
93+
metadata.WithName(name),
94+
metadata.WithNamespace(namespace),
95+
metadata.WithMaintainers(parseMaintainersData(maintainers)),
9596
)
9697

9798
// update metadata file
@@ -102,8 +103,8 @@ func updateMetadata(raw []byte, namespace, name string, maintainers []string) ([
102103
return yamlMeta, nil
103104
}
104105

105-
func loadMetadata(raw []byte) (types.AppMetadata, error) {
106-
var meta types.AppMetadata
106+
func loadMetadata(raw []byte) (metadata.AppMetadata, error) {
107+
var meta metadata.AppMetadata
107108
if err := yaml.Unmarshal(raw, &meta); err != nil {
108109
return meta, errors.Wrap(err, "failed to parse application metadata")
109110
}

internal/packager/fork_test.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ package packager
33
import (
44
"testing"
55

6-
"github.com/docker/app/internal/types"
7-
6+
"github.com/docker/app/types/metadata"
87
"gotest.tools/assert"
98
)
109

@@ -31,23 +30,23 @@ maintainers:
3130
email: billy@pumpkins.net
3231
`
3332

34-
var decodedSampleMetadata = types.AppMetadata{
33+
var decodedSampleMetadata = metadata.AppMetadata{
3534
Name: "machine",
3635
Namespace: "heavy.metal",
3736
Version: "2000",
38-
Maintainers: []types.Maintainer{
37+
Maintainers: []metadata.Maintainer{
3938
{Name: "Billy Corgan", Email: "billy@pumpkins.net"},
4039
},
4140
}
4241

4342
func TestLoadMetadata(t *testing.T) {
4443
appmeta, err := loadMetadata([]byte(sampleMetadata))
4544
assert.NilError(t, err)
46-
assert.DeepEqual(t, appmeta, types.AppMetadata{
45+
assert.DeepEqual(t, appmeta, metadata.AppMetadata{
4746
Name: "machine",
4847
Namespace: "heavy.metal",
4948
Version: "2000",
50-
Maintainers: []types.Maintainer{
49+
Maintainers: []metadata.Maintainer{
5150
{Name: "Billy Corgan", Email: "billy@pumpkins.net"},
5251
},
5352
})
@@ -56,7 +55,7 @@ func TestLoadMetadata(t *testing.T) {
5655
func TestLoadEmptyMetadata(t *testing.T) {
5756
appmeta, err := loadMetadata([]byte(""))
5857
assert.NilError(t, err)
59-
assert.DeepEqual(t, appmeta, types.AppMetadata{})
58+
assert.DeepEqual(t, appmeta, metadata.AppMetadata{})
6059
}
6160

6261
func TestLoadInvalidMetadata(t *testing.T) {
@@ -73,14 +72,14 @@ func TestUpdateMetadata(t *testing.T) {
7372
assert.NilError(t, err)
7473
decodedOutput, err := loadMetadata(output)
7574
assert.NilError(t, err)
76-
assert.DeepEqual(t, decodedOutput, types.AppMetadata{
75+
assert.DeepEqual(t, decodedOutput, metadata.AppMetadata{
7776
Name: "machine",
7877
Namespace: "frog",
7978
Version: decodedSampleMetadata.Version,
80-
Maintainers: []types.Maintainer{
79+
Maintainers: []metadata.Maintainer{
8180
{Name: "infected mushroom", Email: "im@psy.net"},
8281
},
83-
Parents: types.Parents{
82+
Parents: metadata.Parents{
8483
{
8584
Name: decodedSampleMetadata.Name,
8685
Namespace: decodedSampleMetadata.Namespace,

internal/packager/init.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/docker/app/loader"
1717
"github.com/docker/app/render"
1818
"github.com/docker/app/types"
19+
"github.com/docker/app/types/metadata"
1920
composeloader "github.com/docker/cli/cli/compose/loader"
2021
"github.com/docker/cli/cli/compose/schema"
2122
"github.com/docker/cli/opts"
@@ -216,21 +217,21 @@ func writeMetadataFile(name, dirName string, description string, maintainers []s
216217

217218
// parseMaintainersData parses user-provided data through the maintainers flag and returns
218219
// a slice of Maintainer instances
219-
func parseMaintainersData(maintainers []string) []types.Maintainer {
220-
var res []types.Maintainer
220+
func parseMaintainersData(maintainers []string) []metadata.Maintainer {
221+
var res []metadata.Maintainer
221222
for _, m := range maintainers {
222223
ne := strings.SplitN(m, ":", 2)
223224
var email string
224225
if len(ne) > 1 {
225226
email = ne[1]
226227
}
227-
res = append(res, types.Maintainer{Name: ne[0], Email: email})
228+
res = append(res, metadata.Maintainer{Name: ne[0], Email: email})
228229
}
229230
return res
230231
}
231232

232-
func newMetadata(name string, description string, maintainers []string) types.AppMetadata {
233-
res := types.AppMetadata{
233+
func newMetadata(name string, description string, maintainers []string) metadata.AppMetadata {
234+
res := metadata.AppMetadata{
234235
Version: "0.1.0",
235236
Name: name,
236237
Description: description,
@@ -241,7 +242,7 @@ func newMetadata(name string, description string, maintainers []string) types.Ap
241242
if userData != nil {
242243
userName = userData.Username
243244
}
244-
res.Maintainers = []types.Maintainer{{Name: userName}}
245+
res.Maintainers = []metadata.Maintainer{{Name: userName}}
245246
} else {
246247
res.Maintainers = parseMaintainersData(maintainers)
247248
}

internal/packager/init_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/docker/app/internal"
12-
"github.com/docker/app/internal/types"
12+
"github.com/docker/app/types/metadata"
1313
"gotest.tools/assert"
1414
"gotest.tools/fs"
1515
)
@@ -150,7 +150,7 @@ func TestParseMaintainersData(t *testing.T) {
150150
"perfect:cherry:blossom",
151151
}
152152

153-
expectedOutput := []types.Maintainer{
153+
expectedOutput := []metadata.Maintainer{
154154
{Name: "sakuya", Email: "sakuya.izayoi@touhou.jp"},
155155
{Name: "marisa.kirisame", Email: ""},
156156
{Name: "Reimu Hakurei", Email: ""},

internal/packager/registry.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@ import (
1313

1414
"github.com/docker/app/internal"
1515
"github.com/docker/app/types"
16+
"github.com/docker/app/types/metadata"
1617
"github.com/docker/distribution/reference"
1718
"github.com/pkg/errors"
1819
yaml "gopkg.in/yaml.v2"
1920
)
2021

2122
// Save saves an app to docker and returns the image name.
2223
func Save(app *types.App, namespace, tag string) (string, error) {
23-
var meta types.AppMetadata
24+
var meta metadata.AppMetadata
2425
err := yaml.Unmarshal(app.Metadata(), &meta)
2526
if err != nil {
2627
return "", errors.Wrap(err, "failed to parse application metadata")
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package types
1+
package metadata
22

33
import (
44
"strings"
@@ -52,12 +52,12 @@ type ParentMetadata struct {
5252
Maintainers Maintainers
5353
}
5454

55-
// MetadataModifier is a function signature that takes and returns an AppMetadata object
56-
type MetadataModifier func(AppMetadata) AppMetadata
55+
// Modifier is a function signature that takes and returns an AppMetadata object
56+
type Modifier func(AppMetadata) AppMetadata
5757

58-
// MetadataFrom returns an AppMetadata instance based on the provided AppMetadata
58+
// From returns an AppMetadata instance based on the provided AppMetadata
5959
// and applicable modifier functions
60-
func MetadataFrom(orig AppMetadata, modifiers ...MetadataModifier) AppMetadata {
60+
func From(orig AppMetadata, modifiers ...Modifier) AppMetadata {
6161
parent := ParentMetadata{
6262
Name: orig.Name,
6363
Namespace: orig.Namespace,
@@ -80,23 +80,23 @@ func MetadataFrom(orig AppMetadata, modifiers ...MetadataModifier) AppMetadata {
8080
}
8181

8282
// WithMaintainers returns a modified AppMetadata with updated maintainers field
83-
func WithMaintainers(maintainers Maintainers) MetadataModifier {
83+
func WithMaintainers(maintainers Maintainers) Modifier {
8484
return func(parent AppMetadata) AppMetadata {
8585
parent.Maintainers = maintainers
8686
return parent
8787
}
8888
}
8989

9090
// WithName returns a modified AppMetadata with updated name field
91-
func WithName(name string) MetadataModifier {
91+
func WithName(name string) Modifier {
9292
return func(parent AppMetadata) AppMetadata {
9393
parent.Name = name
9494
return parent
9595
}
9696
}
9797

9898
// WithNamespace returns a modified AppMetadata with updated namespace field
99-
func WithNamespace(namespace string) MetadataModifier {
99+
func WithNamespace(namespace string) Modifier {
100100
return func(parent AppMetadata) AppMetadata {
101101
parent.Namespace = namespace
102102
return parent
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package types
1+
package metadata
22

33
import (
44
"testing"

0 commit comments

Comments
 (0)