forked from buildpacks/imgutil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
options.go
120 lines (100 loc) · 2.25 KB
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package imgutil
import (
"github.com/google/go-containerregistry/pkg/authn"
"github.com/google/go-containerregistry/pkg/v1/types"
)
type IndexAddOption func(*AddOptions) error
type IndexPushOption func(*PushOptions) error
type AddOptions struct {
all bool
os, arch, variant, osVersion string
features, osFeatures []string
annotations map[string]string
}
type PushOptions struct {
insecure, purge bool
format types.MediaType
}
type IndexOptions struct {
KeyChain authn.Keychain
XdgPath, Reponame string
InsecureRegistry bool
}
func (o *IndexOptions) Keychain() authn.Keychain {
return o.KeyChain
}
func (o *IndexOptions) XDGRuntimePath() string {
return o.XdgPath
}
func (o *IndexOptions) RepoName() string {
return o.Reponame
}
func (o *IndexOptions) Insecure() bool {
return o.InsecureRegistry
}
func WithAll(all bool) IndexAddOption {
return func(a *AddOptions) error {
a.all = all
return nil
}
}
func WithOS(os string) IndexAddOption {
return func(a *AddOptions) error {
a.os = os
return nil
}
}
func WithArchitecture(arch string) IndexAddOption {
return func(a *AddOptions) error {
a.arch = arch
return nil
}
}
func WithVariant(variant string) IndexAddOption {
return func(a *AddOptions) error {
a.variant = variant
return nil
}
}
func WithOSVersion(osVersion string) IndexAddOption {
return func(a *AddOptions) error {
a.osVersion = osVersion
return nil
}
}
func WithFeatures(features []string) IndexAddOption {
return func(a *AddOptions) error {
a.features = features
return nil
}
}
func WithOSFeatures(osFeatures []string) IndexAddOption {
return func(a *AddOptions) error {
a.osFeatures = osFeatures
return nil
}
}
func WithInsecure(insecure bool) IndexPushOption {
return func(a *PushOptions) error {
a.insecure = insecure
return nil
}
}
func WithPurge(purge bool) IndexPushOption {
return func(a *PushOptions) error {
a.purge = purge
return nil
}
}
func WithFormat(format types.MediaType) IndexPushOption {
return func(a *PushOptions) error {
a.format = format
return nil
}
}
func WithAnnotations(annotations map[string]string) IndexAddOption {
return func(a *AddOptions) error {
a.annotations = annotations
return nil
}
}