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

Commit 347faec

Browse files
author
Vincent Demeester
authored
Merge pull request #340 from vdemeester/app-load-refacto
Heavy docker-app loading refactoring
2 parents ae5fefe + 5630acc commit 347faec

45 files changed

Lines changed: 904 additions & 485 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cmd/docker-app/deploy.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package main
33
import (
44
"github.com/docker/app/internal"
55
"github.com/docker/app/internal/packager"
6-
"github.com/docker/app/internal/render"
7-
"github.com/docker/app/internal/types"
6+
"github.com/docker/app/render"
7+
"github.com/docker/app/types"
88
"github.com/docker/cli/cli"
99
"github.com/docker/cli/cli/command"
1010
"github.com/docker/cli/cli/command/stack"
@@ -71,7 +71,7 @@ func runDeploy(dockerCli command.Cli, flags *pflag.FlagSet, appname string, opts
7171
}
7272
stackName := opts.deployStackName
7373
if stackName == "" {
74-
stackName = internal.AppNameFromDir(app.Path)
74+
stackName = internal.AppNameFromDir(app.Name)
7575
}
7676
return stack.RunDeploy(dockerCli, flags, rendered, deployOrchestrator, options.Deploy{
7777
Namespace: stackName,

cmd/docker-app/helm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +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"
9+
"github.com/docker/app/types"
1010
"github.com/docker/cli/cli"
1111
cliopts "github.com/docker/cli/opts"
1212
"github.com/spf13/cobra"

cmd/docker-app/image-add.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"github.com/docker/app/internal"
77
"github.com/docker/app/internal/image"
88
"github.com/docker/app/internal/packager"
9-
"github.com/docker/app/internal/render"
10-
"github.com/docker/app/internal/types"
9+
"github.com/docker/app/render"
10+
"github.com/docker/app/types"
1111
cliopts "github.com/docker/cli/opts"
1212
"github.com/spf13/cobra"
1313
)
@@ -41,7 +41,7 @@ subdirectory.`,
4141
if err != nil {
4242
return err
4343
}
44-
if err := image.Add(app.Path, args[1:], config); err != nil {
44+
if err := image.Add(app.Name, args[1:], config); err != nil {
4545
return err
4646
}
4747
// check if source was a tarball
@@ -60,7 +60,7 @@ subdirectory.`,
6060
return err
6161
}
6262
// source was a tarball, rebuild it
63-
return packager.Pack(app.Path, target)
63+
return packager.Pack(app.Name, target)
6464
}
6565
return nil
6666
},

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.Path, args[1:])
20+
return image.Load(app.Name, args[1:])
2121
},
2222
}
2323
}

cmd/docker-app/inspect.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package main
22

33
import (
4+
"github.com/docker/app/internal/inspect"
45
"github.com/docker/app/internal/packager"
5-
"github.com/docker/app/internal/render"
66
"github.com/docker/cli/cli"
77
"github.com/docker/cli/cli/command"
88
"github.com/spf13/cobra"
@@ -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.Path)
23+
return inspect.Inspect(dockerCli.Out(), app)
2424
},
2525
}
2626
}

cmd/docker-app/merge.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ func mergeCmd(dockerCli command.Cli) *cobra.Command {
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.OriginalPath, strings.Join(extra, ","))
60+
return fmt.Errorf("refusing to overwrite %s: extra files would be deleted: %s", extractedApp.Path, strings.Join(extra, ","))
6161
}
62-
mergeOutputFile = extractedApp.OriginalPath + ".tmp"
62+
mergeOutputFile = extractedApp.Path + ".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.Path, target); err != nil {
73+
if err := packager.Merge(extractedApp, 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.OriginalPath); err != nil {
81+
if err := os.RemoveAll(extractedApp.Path); err != nil {
8282
return errors.Wrap(err, "failed to erase previous application")
8383
}
84-
if err := os.Rename(mergeOutputFile, extractedApp.OriginalPath); err != nil {
84+
if err := os.Rename(mergeOutputFile, extractedApp.Path); err != nil {
8585
return errors.Wrap(err, "failed to rename new application")
8686
}
8787
}

cmd/docker-app/push.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ func pushCmd() *cobra.Command {
1818
Short: "Push the application to a registry",
1919
Args: cli.RequiresMaxArgs(1),
2020
RunE: func(cmd *cobra.Command, args []string) error {
21-
return packager.Push(firstOrEmpty(args), opts.namespace, opts.tag)
21+
app, err := packager.Extract(firstOrEmpty(args))
22+
if err != nil {
23+
return err
24+
}
25+
defer app.Cleanup()
26+
return packager.Push(app, opts.namespace, opts.tag)
2227
},
2328
}
2429
cmd.Flags().StringVar(&opts.namespace, "namespace", "", "namespace to use (default: namespace in metadata)")

cmd/docker-app/render.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66

77
"github.com/docker/app/internal"
88
"github.com/docker/app/internal/packager"
9-
"github.com/docker/app/internal/render"
10-
"github.com/docker/app/internal/types"
9+
"github.com/docker/app/render"
10+
"github.com/docker/app/types"
1111
"github.com/docker/cli/cli"
1212
"github.com/docker/cli/cli/command"
1313
cliopts "github.com/docker/cli/opts"

cmd/docker-app/save.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ func saveCmd(dockerCli command.Cli) *cobra.Command {
2121
Short: "Save the application as an image to the docker daemon(in preparation for push)",
2222
Args: cli.RequiresMaxArgs(1),
2323
RunE: func(cmd *cobra.Command, args []string) error {
24-
imageName, err := packager.Save(firstOrEmpty(args), opts.namespace, opts.tag)
24+
app, err := packager.Extract(firstOrEmpty(args))
25+
if err != nil {
26+
return err
27+
}
28+
defer app.Cleanup()
29+
imageName, err := packager.Save(app, opts.namespace, opts.tag)
2530
if imageName != "" && err == nil {
2631
fmt.Fprintf(dockerCli.Out(), "Saved application as image: %s\n", imageName)
2732
}

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.OriginalPath + ".tmp"
27+
splitOutputDir = extractedApp.Path + ".tmp"
2828
}
29-
if err := packager.Split(extractedApp.Path, splitOutputDir); err != nil {
29+
if err := packager.Split(extractedApp, splitOutputDir); err != nil {
3030
return err
3131
}
3232
if inPlace {
33-
if err := os.RemoveAll(extractedApp.OriginalPath); err != nil {
33+
if err := os.RemoveAll(extractedApp.Path); err != nil {
3434
return errors.Wrap(err, "failed to erase previous application directory")
3535
}
36-
if err := os.Rename(splitOutputDir, extractedApp.OriginalPath); err != nil {
36+
if err := os.Rename(splitOutputDir, extractedApp.Path); err != nil {
3737
return errors.Wrap(err, "failed to rename new application directory")
3838
}
3939
}

0 commit comments

Comments
 (0)