Skip to content

Commit cb378e7

Browse files
committed
chore: don't hardcode target names
1 parent 972b1b9 commit cb378e7

File tree

6 files changed

+45
-28
lines changed

6 files changed

+45
-28
lines changed

pkg/build/build.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func Create(s *stack.Stack, t *target.Target) error {
5858
return err
5959
}
6060
buildArgs := map[string]string{"PROVIDER": t.Provider}
61-
if buildArgs["PROVIDER"] == "local" {
61+
if buildArgs["PROVIDER"] == target.Local {
6262
buildArgs["PROVIDER"] = "dev"
6363
}
6464
err = cr.Build(fh.Name(), f.ContextDirectory(), f.ImageTagName(s, t.Provider), buildArgs)
@@ -69,7 +69,7 @@ func Create(s *stack.Stack, t *target.Target) error {
6969

7070
for _, c := range s.Containers {
7171
buildArgs := map[string]string{"PROVIDER": t.Provider}
72-
if buildArgs["PROVIDER"] == "local" {
72+
if buildArgs["PROVIDER"] == target.Local {
7373
buildArgs["PROVIDER"] = "dev"
7474
}
7575
err := cr.Build(path.Join(c.ContextDirectory(), c.Dockerfile), c.ContextDirectory(), c.ImageTagName(s, t.Provider), buildArgs)

pkg/cmd/root.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ import (
3232
"github.com/nitrictech/newcli/pkg/cmd/provider"
3333
"github.com/nitrictech/newcli/pkg/cmd/run"
3434
"github.com/nitrictech/newcli/pkg/cmd/stack"
35-
"github.com/nitrictech/newcli/pkg/cmd/target"
35+
cmdTarget "github.com/nitrictech/newcli/pkg/cmd/target"
3636
"github.com/nitrictech/newcli/pkg/output"
37+
"github.com/nitrictech/newcli/pkg/target"
3738
)
3839

3940
const configFileName = ".nitric-config"
@@ -89,7 +90,7 @@ func init() {
8990
rootCmd.AddCommand(deployment.RootCommand())
9091
rootCmd.AddCommand(provider.RootCommand())
9192
rootCmd.AddCommand(stack.RootCommand())
92-
rootCmd.AddCommand(target.RootCommand())
93+
rootCmd.AddCommand(cmdTarget.RootCommand())
9394
rootCmd.AddCommand(run.RootCommand())
9495
rootCmd.AddCommand(versionCmd)
9596
rootCmd.AddCommand(configHelpTopic)
@@ -129,9 +130,9 @@ func ensureConfigDefaults() {
129130
}
130131

131132
targets := viper.GetStringMap("targets")
132-
if _, ok := targets["local"]; !ok {
133+
if _, ok := targets[target.Local]; !ok {
133134
needsWrite = true
134-
targets["local"] = map[string]string{"provider": "local"}
135+
targets[target.Local] = map[string]string{"provider": target.Local}
135136
viper.Set("targets", targets)
136137
}
137138

pkg/functiondockerfile/generate.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
"github.com/nitrictech/boxygen/pkg/backend/dockerfile"
2525
"github.com/nitrictech/newcli/pkg/stack"
26+
"github.com/nitrictech/newcli/pkg/target"
2627
"github.com/nitrictech/newcli/pkg/utils"
2728
)
2829

@@ -32,7 +33,7 @@ type FunctionDockerfile interface {
3233

3334
func withMembrane(con dockerfile.ContainerState, version, provider string) {
3435
membraneName := "membrane-" + provider
35-
if provider == "local" {
36+
if provider == target.Local {
3637
membraneName = "membrane-dev"
3738
}
3839
fetchFrom := fmt.Sprintf("https://github.com/nitrictech/nitric/releases/download/%s/%s", version, membraneName)
@@ -74,9 +75,7 @@ func GenerateForCodeAsConfig(handler string, fwriter io.Writer) error {
7475
return err
7576
}
7677
switch rt {
77-
case utils.RuntimeJavascript:
78-
fallthrough
79-
case utils.RuntimeTypescript:
78+
case utils.RuntimeJavascript, utils.RuntimeTypescript:
8079
return typescriptDevBaseGenerator(fwriter)
8180
}
8281

pkg/provider/generator.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,22 @@
1717
package provider
1818

1919
import (
20+
"fmt"
21+
2022
"github.com/nitrictech/newcli/pkg/provider/local"
23+
"github.com/nitrictech/newcli/pkg/provider/pulumi"
2124
"github.com/nitrictech/newcli/pkg/provider/types"
2225
"github.com/nitrictech/newcli/pkg/stack"
2326
"github.com/nitrictech/newcli/pkg/target"
27+
"github.com/nitrictech/newcli/pkg/utils"
2428
)
2529

2630
func NewProvider(s *stack.Stack, t *target.Target) (types.Provider, error) {
2731
switch t.Provider {
28-
case "local":
32+
case target.Local:
2933
return local.New(s, t)
34+
case target.Aws, target.Azure, target.Digitalocean, target.Gcp:
35+
return pulumi.New(s, t)
3036
default:
3137
return nil, utils.NewNotSupportedErr(fmt.Sprintf("provider %s is not supported", t.Provider))
3238
}

pkg/provider/local/local.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,21 @@ const (
4040
minioConsolePort = 9001 // TODO: Determine if we would like to expose the console
4141
)
4242

43-
var (
44-
userHome, _ = os.UserHomeDir()
45-
nitricHome = path.Join(userHome, ".nitric")
46-
stagingDir = path.Join(nitricHome, "staging")
47-
stagingAPIDir = path.Join(stagingDir, "apis")
48-
)
49-
5043
type local struct {
5144
s *stack.Stack
5245
t *target.Target
5346
network string
5447
cr containerengine.ContainerEngine
5548
}
5649

50+
var (
51+
userHome, _ = os.UserHomeDir()
52+
nitricHome = path.Join(userHome, ".nitric")
53+
stagingDir = path.Join(nitricHome, "staging")
54+
stagingAPIDir = path.Join(stagingDir, "apis")
55+
_ types.Provider = &local{}
56+
)
57+
5758
func New(s *stack.Stack, t *target.Target) (types.Provider, error) {
5859
cr, err := containerengine.Discover()
5960
if err != nil {

pkg/target/options.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,29 @@ import (
2424
"github.com/nitrictech/newcli/pkg/pflagext"
2525
)
2626

27+
const (
28+
Local = "local"
29+
Aws = "aws"
30+
Azure = "azure"
31+
Gcp = "gcp"
32+
Digitalocean = "digitalocean"
33+
DefaultTarget = Local
34+
DefaultProvider = Local
35+
)
36+
2737
var (
28-
target string
29-
name string
30-
provider string
31-
region string
38+
target string
39+
name string
40+
provider string
41+
region string
42+
Providers = []string{Local, Aws, Azure, Gcp, Digitalocean}
3243
)
3344

3445
func FromOptions() *Target {
3546
t := Target{}
3647
if target == "" {
37-
t.Name = "local"
38-
t.Provider = "local"
48+
t.Name = DefaultTarget
49+
t.Provider = DefaultProvider
3950
} else {
4051
targets := map[string]Target{}
4152
cobra.CheckErr(mapstructure.Decode(viper.GetStringMap("targets"), &targets))
@@ -60,15 +71,14 @@ func AddOptions(cmd *cobra.Command, providerOnly bool) {
6071
targets = append(targets, k)
6172
}
6273

63-
cmd.Flags().VarP(pflagext.NewStringEnumVar(&target, targets, "local"), "target", "t", "use this to refer to a target in the configuration")
74+
cmd.Flags().VarP(pflagext.NewStringEnumVar(&target, targets, Local), "target", "t", "use this to refer to a target in the configuration")
6475
cmd.RegisterFlagCompletionFunc("target", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
6576
return targets, cobra.ShellCompDirectiveDefault
6677
})
6778

68-
providers := []string{"local", "aws", "azure", "gcp", "digitalocean"}
69-
cmd.Flags().VarP(pflagext.NewStringEnumVar(&provider, providers, "local"), "provider", "p", "the provider to deploy to")
79+
cmd.Flags().VarP(pflagext.NewStringEnumVar(&provider, Providers, Local), "provider", "p", "the provider to deploy to")
7080
cmd.RegisterFlagCompletionFunc("provider", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
71-
return providers, cobra.ShellCompDirectiveDefault
81+
return Providers, cobra.ShellCompDirectiveDefault
7282
})
7383

7484
if !providerOnly {

0 commit comments

Comments
 (0)