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

Commit b143caf

Browse files
Move file names as constants
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
1 parent a2526fd commit b143caf

8 files changed

Lines changed: 39 additions & 32 deletions

File tree

e2e/binary_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ targets:
174174
envData := "# some comment\nNGINX_VERSION=latest"
175175
inputDir := randomName("app_input_")
176176
os.Mkdir(inputDir, 0755)
177-
ioutil.WriteFile(filepath.Join(inputDir, "docker-compose.yml"), []byte(composeData), 0644)
177+
ioutil.WriteFile(filepath.Join(inputDir, internal.ComposeFileName), []byte(composeData), 0644)
178178
ioutil.WriteFile(filepath.Join(inputDir, ".env"), []byte(envData), 0644)
179179
defer os.RemoveAll(inputDir)
180180

@@ -186,7 +186,7 @@ targets:
186186
"init",
187187
testAppName,
188188
"-c",
189-
filepath.Join(inputDir, "docker-compose.yml"),
189+
filepath.Join(inputDir, internal.ComposeFileName),
190190
"-d",
191191
"my cool app",
192192
"-m", "bob",
@@ -196,9 +196,9 @@ targets:
196196
manifest := fs.Expected(
197197
t,
198198
fs.WithMode(0755),
199-
fs.WithFile("metadata.yml", meta, fs.WithMode(0644)), // too many variables, cheating
200-
fs.WithFile("docker-compose.yml", composeData, fs.WithMode(0644)),
201-
fs.WithFile("settings.yml", "NGINX_ARGS: FILL ME\nNGINX_VERSION: latest\n", fs.WithMode(0644)),
199+
fs.WithFile(internal.MetadataFileName, meta, fs.WithMode(0644)), // too many variables, cheating
200+
fs.WithFile(internal.ComposeFileName, composeData, fs.WithMode(0644)),
201+
fs.WithFile(internal.SettingsFileName, "NGINX_ARGS: FILL ME\nNGINX_VERSION: latest\n", fs.WithMode(0644)),
202202
)
203203

204204
assert.Assert(t, fs.Equal(dirName, manifest))
@@ -208,7 +208,7 @@ targets:
208208
"init",
209209
"tac",
210210
"-c",
211-
filepath.Join(inputDir, "docker-compose.yml"),
211+
filepath.Join(inputDir, internal.ComposeFileName),
212212
"-d",
213213
"my cool app",
214214
"-m", "bob",

internal/names.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@ const (
1212
AppExtension = ".dockerapp"
1313
// The label used to distinguish applications from Docker images.
1414
ImageLabel = "com.docker.application"
15+
// MetadataFileName is metadata file name
16+
MetadataFileName = "metadata.yml"
17+
// ComposeFileName is compose file name
18+
ComposeFileName = "docker-compose.yml"
19+
// SettingsFileName is settings file name
20+
SettingsFileName = "settings.yml"
1521
)
1622

1723
var (
1824
// Application file names, in order.
19-
FileNames = []string{"metadata.yml", "docker-compose.yml", "settings.yml"}
25+
FileNames = []string{MetadataFileName, ComposeFileName, SettingsFileName}
2026
)
2127

2228
var appNameRe, _ = regexp.Compile("^[a-zA-Z][a-zA-Z0-9_-]+$")

internal/packager/init.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ func Init(name string, composeFile string, description string, maintainers []str
4545
}
4646

4747
if composeFile == "" {
48-
if _, err := os.Stat("docker-compose.yml"); err == nil {
49-
composeFile = "docker-compose.yml"
48+
if _, err := os.Stat(internal.ComposeFileName); err == nil {
49+
composeFile = internal.ComposeFileName
5050
}
5151
}
5252
if composeFile == "" {
@@ -62,9 +62,9 @@ func Init(name string, composeFile string, description string, maintainers []str
6262
}
6363
// Merge as a single file
6464
// Add some helfpful comments to distinguish the sections
65-
prependToFile(filepath.Join(dirName, "docker-compose.yml"), "# This section contains the Compose file that describes your application services.\n")
66-
prependToFile(filepath.Join(dirName, "settings.yml"), "# This section contains the default values for your application settings.\n")
67-
prependToFile(filepath.Join(dirName, "metadata.yml"), "# This section contains your application metadata.\n")
65+
prependToFile(filepath.Join(dirName, internal.ComposeFileName), "# This section contains the Compose file that describes your application services.\n")
66+
prependToFile(filepath.Join(dirName, internal.SettingsFileName), "# This section contains the default values for your application settings.\n")
67+
prependToFile(filepath.Join(dirName, internal.MetadataFileName), "# This section contains your application metadata.\n")
6868
temp := "_temp_dockerapp__.dockerapp"
6969
err = os.Rename(dirName, temp)
7070
if err != nil {
@@ -89,10 +89,10 @@ func initFromScratch(name string) error {
8989

9090
dirName := internal.DirNameFromAppName(name)
9191

92-
if err := ioutil.WriteFile(filepath.Join(dirName, "docker-compose.yml"), composeData, 0644); err != nil {
92+
if err := ioutil.WriteFile(filepath.Join(dirName, internal.ComposeFileName), composeData, 0644); err != nil {
9393
return err
9494
}
95-
return ioutil.WriteFile(filepath.Join(dirName, "settings.yml"), []byte{'\n'}, 0644)
95+
return ioutil.WriteFile(filepath.Join(dirName, internal.SettingsFileName), []byte{'\n'}, 0644)
9696
}
9797

9898
func parseEnv(env string, target map[string]string) {
@@ -213,11 +213,11 @@ func initFromComposeFile(name string, composeFile string) error {
213213
if err != nil {
214214
return errors.Wrap(err, "failed to marshal settings")
215215
}
216-
err = ioutil.WriteFile(filepath.Join(dirName, "docker-compose.yml"), composeRaw, 0644)
216+
err = ioutil.WriteFile(filepath.Join(dirName, internal.ComposeFileName), composeRaw, 0644)
217217
if err != nil {
218218
return errors.Wrap(err, "failed to write docker-compose.yml")
219219
}
220-
err = ioutil.WriteFile(filepath.Join(dirName, "settings.yml"), settingsYAML, 0644)
220+
err = ioutil.WriteFile(filepath.Join(dirName, internal.SettingsFileName), settingsYAML, 0644)
221221
if err != nil {
222222
return errors.Wrap(err, "failed to write settings.yml")
223223
}
@@ -263,7 +263,7 @@ func writeMetadataFile(name, dirName string, description string, maintainers []s
263263
if err := tmpl.Execute(resBuf, meta); err != nil {
264264
return errors.Wrap(err, "error generating metadata")
265265
}
266-
return ioutil.WriteFile(filepath.Join(dirName, "metadata.yml"), resBuf.Bytes(), 0644)
266+
return ioutil.WriteFile(filepath.Join(dirName, internal.MetadataFileName), resBuf.Bytes(), 0644)
267267
}
268268

269269
func newMetadata(name string, description string, maintainers []string) types.AppMetadata {

internal/packager/init_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestInitFromComposeFile(t *testing.T) {
3232
envData := "# some comment\nNGINX_VERSION=latest"
3333
inputDir := randomName("app_input_")
3434
os.Mkdir(inputDir, 0755)
35-
ioutil.WriteFile(filepath.Join(inputDir, "docker-compose.yml"), []byte(composeData), 0644)
35+
ioutil.WriteFile(filepath.Join(inputDir, internal.ComposeFileName), []byte(composeData), 0644)
3636
ioutil.WriteFile(filepath.Join(inputDir, ".env"), []byte(envData), 0644)
3737
defer os.RemoveAll(inputDir)
3838

@@ -42,14 +42,14 @@ func TestInitFromComposeFile(t *testing.T) {
4242
assert.NilError(t, err)
4343
defer os.RemoveAll(dirName)
4444

45-
err = initFromComposeFile(testAppName, filepath.Join(inputDir, "docker-compose.yml"))
45+
err = initFromComposeFile(testAppName, filepath.Join(inputDir, internal.ComposeFileName))
4646
assert.NilError(t, err)
4747

4848
manifest := fs.Expected(
4949
t,
5050
fs.WithMode(0755),
51-
fs.WithFile("docker-compose.yml", composeData, fs.WithMode(0644)),
52-
fs.WithFile("settings.yml", "NGINX_ARGS: FILL ME\nNGINX_VERSION: latest\n", fs.WithMode(0644)),
51+
fs.WithFile(internal.ComposeFileName, composeData, fs.WithMode(0644)),
52+
fs.WithFile(internal.SettingsFileName, "NGINX_ARGS: FILL ME\nNGINX_VERSION: latest\n", fs.WithMode(0644)),
5353
)
5454

5555
assert.Assert(t, fs.Equal(dirName, manifest))
@@ -95,7 +95,7 @@ targets:
9595

9696
manifest := fs.Expected(
9797
t,
98-
fs.WithFile("metadata.yml", data, fs.WithMode(0644)),
98+
fs.WithFile(internal.MetadataFileName, data, fs.WithMode(0644)),
9999
)
100100
assert.Assert(t, fs.Equal(tmpdir.Path(), manifest))
101101
}

internal/packager/registry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func Save(appname, namespace, tag string) (string, error) {
2828
return "", err
2929
}
3030
defer cleanup()
31-
metaFile := filepath.Join(appname, "metadata.yml")
31+
metaFile := filepath.Join(appname, internal.MetadataFileName)
3232
metaContent, err := ioutil.ReadFile(metaFile)
3333
if err != nil {
3434
return "", errors.Wrap(err, "failed to read application metadata")

internal/renderer/helm.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func convertTemplates(dict map[interface{}]interface{}) error {
173173
}
174174

175175
func makeChart(appname, targetDir string) error {
176-
metaFile := filepath.Join(appname, "metadata.yml")
176+
metaFile := filepath.Join(appname, internal.MetadataFileName)
177177
metaContent, err := ioutil.ReadFile(metaFile)
178178
if err != nil {
179179
return errors.Wrap(err, "failed to read application metadata")
@@ -286,7 +286,7 @@ func Helm(appname string, composeFiles []string, settingsFile []string, env map[
286286
if render {
287287
return helmRender(appname, targetDir, composeFiles, settingsFile, env)
288288
}
289-
data, err := ioutil.ReadFile(filepath.Join(appname, "docker-compose.yml"))
289+
data, err := ioutil.ReadFile(filepath.Join(appname, internal.ComposeFileName))
290290
if err != nil {
291291
return errors.Wrap(err, "failed to read application Compose file")
292292
}
@@ -304,13 +304,13 @@ func Helm(appname string, composeFiles []string, settingsFile []string, env map[
304304
// makeValues updates helm values.yaml with used variables from settings and env
305305
func makeValues(appname, targetDir string, settingsFile []string, env map[string]string, variables []string) error {
306306
// merge our variables into Values.yaml
307-
sf := []string{filepath.Join(appname, "settings.yml")}
307+
sf := []string{filepath.Join(appname, internal.SettingsFileName)}
308308
sf = append(sf, settingsFile...)
309309
settings, err := loadSettings(sf)
310310
if err != nil {
311311
return err
312312
}
313-
metaFile := filepath.Join(appname, "metadata.yml")
313+
metaFile := filepath.Join(appname, internal.MetadataFileName)
314314
meta := make(map[interface{}]interface{})
315315
metaContent, err := ioutil.ReadFile(metaFile)
316316
if err != nil {

internal/renderer/inspect.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import (
88
"sort"
99
"text/tabwriter"
1010

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

1617
// Inspect dumps the metadata of an app
1718
func Inspect(out io.Writer, appname string) error {
18-
metaFile := filepath.Join(appname, "metadata.yml")
19+
metaFile := filepath.Join(appname, internal.MetadataFileName)
1920
metaContent, err := ioutil.ReadFile(metaFile)
2021
if err != nil {
2122
return errors.Wrap(err, "failed to read application metadata")
@@ -26,7 +27,7 @@ func Inspect(out io.Writer, appname string) error {
2627
return err
2728
}
2829
// extract settings
29-
settingsFile := filepath.Join(appname, "settings.yml")
30+
settingsFile := filepath.Join(appname, internal.SettingsFileName)
3031
settingsContent, err := ioutil.ReadFile(settingsFile)
3132
if err != nil {
3233
return errors.Wrap(err, "failed to read application settings")

internal/renderer/render.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,15 @@ func contains(list []string, needle string) bool {
159159
// Render renders the Compose file for this app, merging in settings files, other compose files, and env
160160
func Render(appname string, composeFiles []string, settingsFile []string, env map[string]string) (*composetypes.Config, error) {
161161
// prepend the app settings to the argument settings
162-
sf := []string{filepath.Join(appname, "settings.yml")}
162+
sf := []string{filepath.Join(appname, internal.SettingsFileName)}
163163
sf = append(sf, settingsFile...)
164164
// load the settings into a struct
165165
settings, err := loadSettings(sf)
166166
if err != nil {
167167
return nil, err
168168
}
169169
// inject our metadata
170-
metaFile := filepath.Join(appname, "metadata.yml")
170+
metaFile := filepath.Join(appname, internal.MetadataFileName)
171171
meta := make(map[interface{}]interface{})
172172
metaContent, err := ioutil.ReadFile(metaFile)
173173
if err != nil {
@@ -189,7 +189,7 @@ func Render(appname string, composeFiles []string, settingsFile []string, env ma
189189
finalEnv := make(map[string]string)
190190
flatten(settings, finalEnv, "")
191191
// prepend our app compose file to the list
192-
composes := []string{filepath.Join(appname, "docker-compose.yml")}
192+
composes := []string{filepath.Join(appname, internal.ComposeFileName)}
193193
composes = append(composes, composeFiles...)
194194
renderers := strings.Split(internal.Renderers, ",")
195195
if r, ok := os.LookupEnv("DOCKERAPP_RENDERERS"); ok {

0 commit comments

Comments
 (0)