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

Commit de9bd1e

Browse files
author
Vincent Demeester
authored
Merge pull request #299 from vdemeester/give-me-my-app
Move ExtractedApp to types.App
2 parents 0b92d64 + 42878a6 commit de9bd1e

18 files changed

Lines changed: 175 additions & 103 deletions

File tree

cmd/docker-app/deploy.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"github.com/docker/app/internal"
55
"github.com/docker/app/internal/packager"
66
"github.com/docker/app/internal/render"
7+
"github.com/docker/app/internal/types"
78
"github.com/docker/cli/cli"
89
"github.com/docker/cli/cli/command"
910
"github.com/docker/cli/cli/command/stack"
@@ -51,7 +52,10 @@ func deployCmd(dockerCli command.Cli) *cobra.Command {
5152
}
5253

5354
func runDeploy(dockerCli command.Cli, flags *pflag.FlagSet, appname string, opts deployOptions) error {
54-
app, err := packager.Extract(appname)
55+
app, err := packager.Extract(appname,
56+
types.WithSettingsFiles(opts.deploySettingsFiles...),
57+
types.WithComposeFiles(opts.deployComposeFiles...),
58+
)
5559
if err != nil {
5660
return err
5761
}
@@ -61,13 +65,13 @@ func runDeploy(dockerCli command.Cli, flags *pflag.FlagSet, appname string, opts
6165
return err
6266
}
6367
d := cliopts.ConvertKVStringsToMap(opts.deployEnv)
64-
rendered, err := render.Render(app.AppName, opts.deployComposeFiles, opts.deploySettingsFiles, d)
68+
rendered, err := render.Render(app, d)
6569
if err != nil {
6670
return err
6771
}
6872
stackName := opts.deployStackName
6973
if stackName == "" {
70-
stackName = internal.AppNameFromDir(app.AppName)
74+
stackName = internal.AppNameFromDir(app.Path)
7175
}
7276
return stack.RunDeploy(dockerCli, flags, rendered, deployOrchestrator, options.Deploy{
7377
Namespace: stackName,

cmd/docker-app/helm.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/docker/app/internal"
77
"github.com/docker/app/internal/helm"
88
"github.com/docker/app/internal/packager"
9+
"github.com/docker/app/internal/types"
910
"github.com/docker/cli/cli"
1011
cliopts "github.com/docker/cli/opts"
1112
"github.com/spf13/cobra"
@@ -26,7 +27,10 @@ func helmCmd() *cobra.Command {
2627
Long: `Generate a Helm chart for the application.`,
2728
Args: cli.RequiresMaxArgs(1),
2829
RunE: func(cmd *cobra.Command, args []string) error {
29-
app, err := packager.Extract(firstOrEmpty(args))
30+
app, err := packager.Extract(firstOrEmpty(args),
31+
types.WithSettingsFiles(helmSettingsFile...),
32+
types.WithComposeFiles(helmComposeFiles...),
33+
)
3034
if err != nil {
3135
return err
3236
}
@@ -35,7 +39,7 @@ func helmCmd() *cobra.Command {
3539
if stackVersion != helm.V1Beta1 && stackVersion != helm.V1Beta2 {
3640
return fmt.Errorf("invalid stack version %q (accepted values: %s, %s)", stackVersion, helm.V1Beta1, helm.V1Beta2)
3741
}
38-
return helm.Helm(app.AppName, helmComposeFiles, helmSettingsFile, d, helmRender, stackVersion)
42+
return helm.Helm(app, d, helmRender, stackVersion)
3943
},
4044
}
4145
if internal.Experimental == "on" {

cmd/docker-app/image-add.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/docker/app/internal/image"
88
"github.com/docker/app/internal/packager"
99
"github.com/docker/app/internal/render"
10+
"github.com/docker/app/internal/types"
1011
cliopts "github.com/docker/cli/opts"
1112
"github.com/spf13/cobra"
1213
)
@@ -27,17 +28,20 @@ subdirectory.`,
2728
Args: cobra.MinimumNArgs(1),
2829
RunE: func(cmd *cobra.Command, args []string) error {
2930
oappname := args[0]
30-
app, err := packager.Extract(oappname)
31+
app, err := packager.Extract(oappname,
32+
types.WithSettingsFiles(imageAddSettingsFile...),
33+
types.WithComposeFiles(imageAddComposeFiles...),
34+
)
3135
if err != nil {
3236
return err
3337
}
3438
defer app.Cleanup()
3539
d := cliopts.ConvertKVStringsToMap(imageAddEnv)
36-
config, err := render.Render(app.AppName, imageAddComposeFiles, imageAddSettingsFile, d)
40+
config, err := render.Render(app, d)
3741
if err != nil {
3842
return err
3943
}
40-
if err := image.Add(app.AppName, args[1:], config); err != nil {
44+
if err := image.Add(app.Path, args[1:], config); err != nil {
4145
return err
4246
}
4347
// check if source was a tarball
@@ -56,7 +60,7 @@ subdirectory.`,
5660
return err
5761
}
5862
// source was a tarball, rebuild it
59-
return packager.Pack(app.AppName, target)
63+
return packager.Pack(app.Path, target)
6064
}
6165
return nil
6266
},

cmd/docker-app/image-load.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func imageLoadCmd() *cobra.Command {
1717
return err
1818
}
1919
defer app.Cleanup()
20-
return image.Load(app.AppName, args[1:])
20+
return image.Load(app.Path, args[1:])
2121
},
2222
}
2323
}

cmd/docker-app/inspect.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func inspectCmd(dockerCli command.Cli) *cobra.Command {
2020
return err
2121
}
2222
defer app.Cleanup()
23-
return render.Inspect(dockerCli.Out(), app.AppName)
23+
return render.Inspect(dockerCli.Out(), app.Path)
2424
},
2525
}
2626
}

cmd/docker-app/merge.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ func mergeCmd(dockerCli command.Cli) *cobra.Command {
5252
defer extractedApp.Cleanup()
5353
inPlace := mergeOutputFile == ""
5454
if inPlace {
55-
extra, err := extraFiles(extractedApp.AppName)
55+
extra, err := extraFiles(extractedApp.Path)
5656
if err != nil {
5757
return errors.Wrap(err, "error scanning application directory")
5858
}
5959
if len(extra) != 0 {
60-
return fmt.Errorf("refusing to overwrite %s: extra files would be deleted: %s", extractedApp.OriginalAppName, strings.Join(extra, ","))
60+
return fmt.Errorf("refusing to overwrite %s: extra files would be deleted: %s", extractedApp.OriginalPath, strings.Join(extra, ","))
6161
}
62-
mergeOutputFile = extractedApp.OriginalAppName + ".tmp"
62+
mergeOutputFile = extractedApp.OriginalPath + ".tmp"
6363
}
6464
var target io.Writer
6565
if mergeOutputFile == "-" {
@@ -70,18 +70,18 @@ func mergeCmd(dockerCli command.Cli) *cobra.Command {
7070
return err
7171
}
7272
}
73-
if err := packager.Merge(extractedApp.AppName, target); err != nil {
73+
if err := packager.Merge(extractedApp.Path, target); err != nil {
7474
return err
7575
}
7676
if mergeOutputFile != "-" {
7777
// Need to close for the Rename to work on windows.
7878
target.(io.WriteCloser).Close()
7979
}
8080
if inPlace {
81-
if err := os.RemoveAll(extractedApp.OriginalAppName); err != nil {
81+
if err := os.RemoveAll(extractedApp.OriginalPath); err != nil {
8282
return errors.Wrap(err, "failed to erase previous application")
8383
}
84-
if err := os.Rename(mergeOutputFile, extractedApp.OriginalAppName); err != nil {
84+
if err := os.Rename(mergeOutputFile, extractedApp.OriginalPath); err != nil {
8585
return errors.Wrap(err, "failed to rename new application")
8686
}
8787
}

cmd/docker-app/pack.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func packCmd(dockerCli command.Cli) *cobra.Command {
3636
return err
3737
}
3838
}
39-
return packager.Pack(app.AppName, target)
39+
return packager.Pack(app.Path, target)
4040
},
4141
}
4242
cmd.Flags().StringVarP(&packOutputFile, "output", "o", "-", "Output file (- for stdout)")

cmd/docker-app/render.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/docker/app/internal"
88
"github.com/docker/app/internal/packager"
99
"github.com/docker/app/internal/render"
10+
"github.com/docker/app/internal/types"
1011
"github.com/docker/cli/cli"
1112
"github.com/docker/cli/cli/command"
1213
cliopts "github.com/docker/cli/opts"
@@ -28,13 +29,16 @@ func renderCmd(dockerCli command.Cli) *cobra.Command {
2829
Long: `Render the Compose file for the application.`,
2930
Args: cli.RequiresMaxArgs(1),
3031
RunE: func(cmd *cobra.Command, args []string) error {
31-
app, err := packager.Extract(firstOrEmpty(args))
32+
app, err := packager.Extract(firstOrEmpty(args),
33+
types.WithSettingsFiles(renderSettingsFile...),
34+
types.WithComposeFiles(renderComposeFiles...),
35+
)
3236
if err != nil {
3337
return err
3438
}
3539
defer app.Cleanup()
3640
d := cliopts.ConvertKVStringsToMap(renderEnv)
37-
rendered, err := render.Render(app.AppName, renderComposeFiles, renderSettingsFile, d)
41+
rendered, err := render.Render(app, d)
3842
if err != nil {
3943
return err
4044
}

cmd/docker-app/split.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ func splitCmd() *cobra.Command {
2424
defer extractedApp.Cleanup()
2525
inPlace := splitOutputDir == ""
2626
if inPlace {
27-
splitOutputDir = extractedApp.OriginalAppName + ".tmp"
27+
splitOutputDir = extractedApp.OriginalPath + ".tmp"
2828
}
29-
if err := packager.Split(extractedApp.AppName, splitOutputDir); err != nil {
29+
if err := packager.Split(extractedApp.Path, splitOutputDir); err != nil {
3030
return err
3131
}
3232
if inPlace {
33-
if err := os.RemoveAll(extractedApp.OriginalAppName); err != nil {
33+
if err := os.RemoveAll(extractedApp.OriginalPath); err != nil {
3434
return errors.Wrap(err, "failed to erase previous application directory")
3535
}
36-
if err := os.Rename(splitOutputDir, extractedApp.OriginalAppName); err != nil {
36+
if err := os.Rename(splitOutputDir, extractedApp.OriginalPath); err != nil {
3737
return errors.Wrap(err, "failed to rename new application directory")
3838
}
3939
}

cmd/docker-app/validate.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"github.com/docker/app/internal/packager"
5+
"github.com/docker/app/internal/types"
56
"github.com/docker/app/internal/validator"
67
"github.com/docker/cli/cli"
78
cliopts "github.com/docker/cli/opts"
@@ -19,13 +20,15 @@ func validateCmd() *cobra.Command {
1920
Short: "Checks the rendered application is syntactically correct",
2021
Args: cli.RequiresMaxArgs(1),
2122
RunE: func(cmd *cobra.Command, args []string) error {
22-
app, err := packager.Extract(firstOrEmpty(args))
23+
app, err := packager.Extract(firstOrEmpty(args),
24+
types.WithSettingsFiles(validateSettingsFile...),
25+
)
2326
if err != nil {
2427
return err
2528
}
2629
defer app.Cleanup()
2730
argSettings := cliopts.ConvertKVStringsToMap(validateEnv)
28-
return validator.Validate(app.AppName, validateSettingsFile, argSettings)
31+
return validator.Validate(app, argSettings)
2932
},
3033
}
3134
cmd.Flags().StringArrayVarP(&validateSettingsFile, "settings-files", "f", []string{}, "Override settings files")

0 commit comments

Comments
 (0)