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

Commit 9b20eb2

Browse files
authored
Merge pull request #207 from vdemeester/no-utils
Remove utils and constants packages
2 parents cd4a3aa + 2db47db commit 9b20eb2

14 files changed

Lines changed: 46 additions & 161 deletions

File tree

cmd/docker-app/deploy.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"github.com/docker/app/internal"
99
"github.com/docker/app/internal/packager"
1010
"github.com/docker/app/internal/renderer"
11-
"github.com/docker/app/internal/utils"
1211
"github.com/docker/cli/cli"
1312
"github.com/docker/cli/cli/command"
1413
"github.com/docker/cli/cli/command/stack/kubernetes"
@@ -83,7 +82,7 @@ func runDeploy(appname string, opts deployOptions) error {
8382
})
8483
stackName := opts.deployStackName
8584
if stackName == "" {
86-
stackName = utils.AppNameFromDir(appname)
85+
stackName = internal.AppNameFromDir(appname)
8786
}
8887
if deployOrchestrator == "swarm" {
8988
ctx := context.Background()

e2e/binary_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import (
1313
"strings"
1414
"testing"
1515

16-
"github.com/docker/app/internal/utils"
16+
"github.com/docker/app/internal"
17+
1718
"gotest.tools/assert"
1819
"gotest.tools/fs"
1920
"gotest.tools/golden"
@@ -224,7 +225,7 @@ targets:
224225
defer os.RemoveAll(inputDir)
225226

226227
testAppName := "app_test"
227-
dirName := utils.DirNameFromAppName(testAppName)
228+
dirName := internal.DirNameFromAppName(testAppName)
228229
defer os.RemoveAll(dirName)
229230

230231
args := []string{

internal/constants/constants.go

Lines changed: 0 additions & 6 deletions
This file was deleted.

internal/image/image.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"os/exec"
77
"path/filepath"
88

9+
"github.com/docker/app/internal"
910
"github.com/docker/app/internal/packager"
1011
"github.com/docker/app/internal/renderer"
11-
"github.com/docker/app/internal/utils"
1212
)
1313

1414
func contains(list []string, needle string) bool {
@@ -48,7 +48,7 @@ func Add(appname string, services []string, composeFiles []string, settingsFile
4848
s, err := os.Stat(oappname)
4949
if err != nil {
5050
// try appending our extension
51-
oappname = utils.DirNameFromAppName(oappname)
51+
oappname = internal.DirNameFromAppName(oappname)
5252
s, err = os.Stat(oappname)
5353
}
5454
if err != nil {
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
1-
package utils
1+
package internal
22

33
import (
44
"fmt"
55
"path/filepath"
66
"regexp"
77
"strings"
8+
)
89

9-
"github.com/docker/app/internal/constants"
10+
const (
11+
// AppExtension is the extension used by an application
12+
AppExtension = ".dockerapp"
1013
)
1114

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

1417
// AppNameFromDir takes a path to an app directory and returns
1518
// the application's name
1619
func AppNameFromDir(dirName string) string {
17-
return strings.TrimSuffix(filepath.Base(dirName), constants.AppExtension)
20+
return strings.TrimSuffix(filepath.Base(dirName), AppExtension)
1821
}
1922

2023
// DirNameFromAppName takes an application name and returns the
2124
// corresponding directory name
2225
func DirNameFromAppName(appName string) string {
23-
if strings.HasSuffix(appName, constants.AppExtension) {
26+
if strings.HasSuffix(appName, AppExtension) {
2427
return appName
2528
}
26-
return appName + constants.AppExtension
29+
return appName + AppExtension
2730
}
2831

2932
// ValidateAppName takes an app name and returns an error if it doesn't
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package utils
1+
package internal
22

33
import (
44
"fmt"

internal/packager/extract.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ import (
1010
"path/filepath"
1111
"strings"
1212

13-
"github.com/docker/app/internal/constants"
14-
"github.com/docker/app/internal/utils"
13+
"github.com/docker/app/internal"
1514
"github.com/pkg/errors"
1615
)
1716

@@ -25,7 +24,7 @@ func findApp() (string, error) {
2524
if err != nil {
2625
return "", errors.Wrap(err, "cannot resolve current working directory")
2726
}
28-
if strings.HasSuffix(cwd, constants.AppExtension) {
27+
if strings.HasSuffix(cwd, internal.AppExtension) {
2928
return cwd, nil
3029
}
3130
content, err := ioutil.ReadDir(cwd)
@@ -34,7 +33,7 @@ func findApp() (string, error) {
3433
}
3534
hit := ""
3635
for _, c := range content {
37-
if strings.HasSuffix(c.Name(), constants.AppExtension) {
36+
if strings.HasSuffix(c.Name(), internal.AppExtension) {
3837
if hit != "" {
3938
return "", fmt.Errorf("multiple applications found in current directory, specify the application name on the command line")
4039
}
@@ -53,15 +52,15 @@ func extractImage(appname string) (string, func(), error) {
5352
if strings.Contains(appname, ":") {
5453
nametag := strings.Split(appname, ":")
5554
if len(nametag) == 3 || strings.Contains(nametag[1], "/") {
56-
nametag[1] = utils.DirNameFromAppName(nametag[1])
55+
nametag[1] = internal.DirNameFromAppName(nametag[1])
5756
appname = filepath.Base(nametag[1])
5857
} else {
59-
nametag[0] = utils.DirNameFromAppName(nametag[0])
58+
nametag[0] = internal.DirNameFromAppName(nametag[0])
6059
appname = filepath.Base(nametag[0])
6160
}
6261
imagename = strings.Join(nametag, ":")
6362
} else {
64-
imagename = utils.DirNameFromAppName(appname)
63+
imagename = internal.DirNameFromAppName(appname)
6564
appname = filepath.Base(imagename)
6665
}
6766
tempDir, err := ioutil.TempDir("", "dockerapp")
@@ -109,7 +108,7 @@ func Extract(appname string) (string, func(), error) {
109108
s, err := os.Stat(appname)
110109
if err != nil {
111110
// try appending our extension
112-
appname = utils.DirNameFromAppName(appname)
111+
appname = internal.DirNameFromAppName(appname)
113112
s, err = os.Stat(appname)
114113
}
115114
if err != nil {

internal/packager/init.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"strings"
1111
"text/template"
1212

13+
"github.com/docker/app/internal"
1314
"github.com/docker/app/internal/types"
14-
"github.com/docker/app/internal/utils"
1515
"github.com/pkg/errors"
1616
log "github.com/sirupsen/logrus"
1717
"gopkg.in/yaml.v2"
@@ -26,10 +26,10 @@ func prependToFile(filename, text string) {
2626
// Init is the entrypoint initialization function.
2727
// It generates a new application package based on the provided parameters.
2828
func Init(name string, composeFile string, description string, maintainers []string, singleFile bool) error {
29-
if err := utils.ValidateAppName(name); err != nil {
29+
if err := internal.ValidateAppName(name); err != nil {
3030
return err
3131
}
32-
dirName := utils.DirNameFromAppName(name)
32+
dirName := internal.DirNameFromAppName(name)
3333
if err := os.Mkdir(dirName, 0755); err != nil {
3434
return errors.Wrap(err, "failed to create application directory")
3535
}
@@ -80,11 +80,12 @@ func initFromScratch(name string) error {
8080
return err
8181
}
8282

83-
dirName := utils.DirNameFromAppName(name)
84-
if err := utils.CreateFileWithData(filepath.Join(dirName, "docker-compose.yml"), composeData); err != nil {
83+
dirName := internal.DirNameFromAppName(name)
84+
85+
if err := ioutil.WriteFile(filepath.Join(dirName, "docker-compose.yml"), composeData, 0644); err != nil {
8586
return err
8687
}
87-
return utils.CreateFileWithData(filepath.Join(dirName, "settings.yml"), []byte{'\n'})
88+
return ioutil.WriteFile(filepath.Join(dirName, "settings.yml"), []byte{'\n'}, 0644)
8889
}
8990

9091
func parseEnv(env string, target map[string]string) {
@@ -180,7 +181,7 @@ func ExtractVariables(composeRaw string) ([]string, error) {
180181
func initFromComposeFile(name string, composeFile string) error {
181182
log.Debug("init from compose")
182183

183-
dirName := utils.DirNameFromAppName(name)
184+
dirName := internal.DirNameFromAppName(name)
184185
composeRaw, err := ioutil.ReadFile(composeFile)
185186
if err != nil {
186187
return errors.Wrap(err, "failed to read compose file")

internal/packager/init_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import (
88
"path/filepath"
99
"testing"
1010

11-
"github.com/docker/app/internal/utils"
11+
"github.com/docker/app/internal"
12+
1213
"gotest.tools/assert"
1314
"gotest.tools/fs"
1415
)
@@ -36,7 +37,7 @@ func TestInitFromComposeFile(t *testing.T) {
3637
defer os.RemoveAll(inputDir)
3738

3839
testAppName := randomName("app_")
39-
dirName := utils.DirNameFromAppName(testAppName)
40+
dirName := internal.DirNameFromAppName(testAppName)
4041
err := os.Mkdir(dirName, 0755)
4142
assert.NilError(t, err)
4243
defer os.RemoveAll(dirName)
@@ -56,7 +57,7 @@ func TestInitFromComposeFile(t *testing.T) {
5657

5758
func TestInitFromInvalidComposeFile(t *testing.T) {
5859
testAppName := randomName("app_")
59-
dirName := utils.DirNameFromAppName(testAppName)
60+
dirName := internal.DirNameFromAppName(testAppName)
6061
err := os.Mkdir(dirName, 0755)
6162
assert.NilError(t, err)
6263
defer os.RemoveAll(dirName)

internal/packager/packing.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import (
88
"os"
99
"path/filepath"
1010

11-
"github.com/docker/app/internal/constants"
12-
"github.com/docker/app/internal/utils"
11+
"github.com/docker/app/internal"
12+
1313
"golang.org/x/crypto/ssh/terminal"
1414
)
1515

@@ -99,7 +99,7 @@ func Unpack(appname, targetDir string) error {
9999
s, err := os.Stat(appname)
100100
if err != nil {
101101
// try appending our extension
102-
appname = utils.DirNameFromAppName(appname)
102+
appname = internal.DirNameFromAppName(appname)
103103
s, err = os.Stat(appname)
104104
}
105105
if err != nil {
@@ -108,7 +108,7 @@ func Unpack(appname, targetDir string) error {
108108
if s.IsDir() {
109109
return fmt.Errorf("app already extracted")
110110
}
111-
out := filepath.Join(targetDir, utils.AppNameFromDir(appname)+constants.AppExtension)
111+
out := filepath.Join(targetDir, internal.AppNameFromDir(appname)+internal.AppExtension)
112112
err = os.Mkdir(out, 0755)
113113
if err != nil {
114114
return err

0 commit comments

Comments
 (0)