Skip to content

Commit 4228569

Browse files
committed
Extract code for loading config
Signed-off-by: Ben Firshman <[email protected]>
1 parent e0218e9 commit 4228569

File tree

3 files changed

+36
-55
lines changed

3 files changed

+36
-55
lines changed

pkg/cli/debug.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,11 @@ package cli
22

33
import (
44
"fmt"
5-
"io/ioutil"
6-
"os"
7-
"path"
85

96
"github.com/spf13/cobra"
107

118
"github.com/replicate/cog/pkg/docker"
129
"github.com/replicate/cog/pkg/global"
13-
"github.com/replicate/cog/pkg/model"
14-
"github.com/replicate/cog/pkg/util/files"
1510
)
1611

1712
func newDebugCommand() *cobra.Command {
@@ -34,34 +29,11 @@ func newDebugCommand() *cobra.Command {
3429
}
3530

3631
func cmdDockerfile(cmd *cobra.Command, args []string) error {
37-
projectDir, err := os.Getwd()
32+
config, projectDir, err := getConfig()
3833
if err != nil {
3934
return err
4035
}
4136

42-
configPath := path.Join(projectDir, global.ConfigFilename)
43-
44-
exists, err := files.Exists(configPath)
45-
if err != nil {
46-
return err
47-
}
48-
if !exists {
49-
return fmt.Errorf("%s does not exist in %s. Are you in the right directory?", global.ConfigFilename, projectDir)
50-
}
51-
52-
contents, err := ioutil.ReadFile(configPath)
53-
if err != nil {
54-
return err
55-
}
56-
57-
config, err := model.ConfigFromYAML(contents)
58-
if err != nil {
59-
return err
60-
}
61-
if err := config.ValidateAndCompleteConfig(); err != nil {
62-
return err
63-
}
64-
6537
arch, err := cmd.Flags().GetString("arch")
6638
if err != nil {
6739
return err

pkg/cli/root.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package cli
22

33
import (
44
"fmt"
5+
"io/ioutil"
56
"os"
7+
"path"
68
"regexp"
79

810
"github.com/spf13/cobra"
@@ -11,6 +13,7 @@ import (
1113
"github.com/replicate/cog/pkg/model"
1214
"github.com/replicate/cog/pkg/settings"
1315
"github.com/replicate/cog/pkg/util/console"
16+
"github.com/replicate/cog/pkg/util/files"
1417
)
1518

1619
var modelFlag string
@@ -108,3 +111,32 @@ func getProjectDir() (string, error) {
108111
}
109112
return projectDirFlag, nil
110113
}
114+
115+
func getConfig() (*model.Config, string, error) {
116+
projectDir, err := os.Getwd()
117+
if err != nil {
118+
return nil, "", err
119+
}
120+
121+
configPath := path.Join(projectDir, global.ConfigFilename)
122+
123+
exists, err := files.Exists(configPath)
124+
if err != nil {
125+
return nil, "", err
126+
}
127+
if !exists {
128+
return nil, "", fmt.Errorf("%s does not exist in %s. Are you in the right directory?", global.ConfigFilename, projectDir)
129+
}
130+
131+
contents, err := ioutil.ReadFile(configPath)
132+
if err != nil {
133+
return nil, "", err
134+
}
135+
136+
config, err := model.ConfigFromYAML(contents)
137+
if err != nil {
138+
return nil, "", err
139+
}
140+
err = config.ValidateAndCompleteConfig()
141+
return config, projectDir, err
142+
}

pkg/cli/test.go

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,12 @@ package cli
33
import (
44
"context"
55
"fmt"
6-
"os"
7-
"path/filepath"
86

97
"github.com/spf13/cobra"
108

119
"github.com/replicate/cog/pkg/docker"
12-
"github.com/replicate/cog/pkg/global"
1310
"github.com/replicate/cog/pkg/logger"
14-
"github.com/replicate/cog/pkg/model"
1511
"github.com/replicate/cog/pkg/serving"
16-
"github.com/replicate/cog/pkg/util/files"
1712
)
1813

1914
func newTestCommand() *cobra.Command {
@@ -33,31 +28,12 @@ func Test(cmd *cobra.Command, args []string) error {
3328
if err != nil {
3429
return err
3530
}
36-
projectDir, err := os.Getwd()
37-
if err != nil {
38-
return err
39-
}
40-
logWriter := logger.NewConsoleLogger()
4131

42-
configPath := filepath.Join(projectDir, global.ConfigFilename)
43-
exists, err := files.Exists(configPath)
44-
if err != nil {
45-
return err
46-
}
47-
if !exists {
48-
return fmt.Errorf("%s does not exist in %s. Are you in the right directory?", global.ConfigFilename, projectDir)
49-
}
50-
configRaw, err := os.ReadFile(filepath.Join(projectDir, global.ConfigFilename))
51-
if err != nil {
52-
return fmt.Errorf("Failed to read %s: %w", global.ConfigFilename, err)
53-
}
54-
config, err := model.ConfigFromYAML(configRaw)
32+
config, projectDir, err := getConfig()
5533
if err != nil {
5634
return err
5735
}
58-
if err := config.ValidateAndCompleteConfig(); err != nil {
59-
return err
60-
}
36+
6137
archMap := map[string]bool{}
6238
for _, confArch := range config.Environment.Architectures {
6339
archMap[confArch] = true
@@ -76,6 +52,7 @@ func Test(cmd *cobra.Command, args []string) error {
7652
if err != nil {
7753
return err
7854
}
55+
logWriter := logger.NewConsoleLogger()
7956
buildUseGPU := config.Environment.BuildRequiresGPU && arch == "gpu"
8057
tag, err := dockerImageBuilder.Build(context.Background(), projectDir, dockerfileContents, "", buildUseGPU, logWriter)
8158
if err != nil {

0 commit comments

Comments
 (0)