@@ -5,9 +5,10 @@ import (
55
66 "github.com/AlecAivazis/survey/v2"
77 "github.com/codeupify/upify/internal/config"
8+ "github.com/codeupify/upify/internal/infra"
89 "github.com/codeupify/upify/internal/lang"
9- "github.com/codeupify/upify/internal/platform/aws/lambda "
10- "github.com/codeupify/upify/internal/platform/gcp/cloudrun "
10+ "github.com/codeupify/upify/internal/platform/aws"
11+ "github.com/codeupify/upify/internal/platform/gcp"
1112 "github.com/spf13/cobra"
1213)
1314
@@ -29,10 +30,10 @@ var platformListCmd = &cobra.Command{
2930 },
3031}
3132
32- var awsLambdaCmd = & cobra.Command {
33- Use : "aws-lambda " ,
34- Short : "Add AWS Lambda configuration" ,
35- RunE : addAWSLambda ,
33+ var awsCmd = & cobra.Command {
34+ Use : "aws" ,
35+ Short : "Add AWS configuration" ,
36+ RunE : addAws ,
3637}
3738
3839var awsRegion string
@@ -42,28 +43,28 @@ var gcpRegion string
4243var gcpProjectId string
4344var gcpRuntime string
4445
45- var gcpCloudRunCmd = & cobra.Command {
46- Use : "gcp-cloudrun " ,
47- Short : "Add GCP Cloud Run configuration" ,
48- RunE : addGCPCloudRun ,
46+ var gcpCmd = & cobra.Command {
47+ Use : "gcp" ,
48+ Short : "Add GCP configuration" ,
49+ RunE : addGCP ,
4950}
5051
5152func init () {
5253 rootCmd .AddCommand (platformCmd )
5354 platformCmd .AddCommand (platformAddCmd )
5455 platformCmd .AddCommand (platformListCmd )
5556
56- platformAddCmd .AddCommand (awsLambdaCmd )
57- awsLambdaCmd .Flags ().StringVar (& awsRegion , "region" , "" , "AWS region" )
58- awsLambdaCmd .Flags ().StringVar (& awsRuntime , "runtime" , "" , "Lambda runtime" )
57+ platformAddCmd .AddCommand (awsCmd )
58+ awsCmd .Flags ().StringVar (& awsRegion , "region" , "" , "AWS region" )
59+ awsCmd .Flags ().StringVar (& awsRuntime , "runtime" , "" , "Lambda runtime" )
5960
60- platformAddCmd .AddCommand (gcpCloudRunCmd )
61- gcpCloudRunCmd .Flags ().StringVar (& gcpRegion , "region" , "" , "GCP region" )
62- gcpCloudRunCmd .Flags ().StringVar (& gcpProjectId , "project-id" , "" , "GCP project ID" )
63- gcpCloudRunCmd .Flags ().StringVar (& gcpRuntime , "runtime" , "" , "Cloud Run runtime" )
61+ platformAddCmd .AddCommand (gcpCmd )
62+ gcpCmd .Flags ().StringVar (& gcpRegion , "region" , "" , "GCP region" )
63+ gcpCmd .Flags ().StringVar (& gcpProjectId , "project-id" , "" , "GCP project ID" )
64+ gcpCmd .Flags ().StringVar (& gcpRuntime , "runtime" , "" , "Cloud Run runtime" )
6465}
6566
66- func addAWSLambda (cmd * cobra.Command , args []string ) error {
67+ func addAws (cmd * cobra.Command , args []string ) error {
6768 cfg , err := config .LoadConfig ()
6869 if err != nil {
6970 return fmt .Errorf ("failed to load config: %w" , err )
@@ -80,7 +81,7 @@ func addAWSLambda(cmd *cobra.Command, args []string) error {
8081 }
8182
8283 if awsRuntime == "" {
83- runtimes := getAWSRuntimes (cfg .Language )
84+ runtimes := getAWSLambdaRuntimes (cfg .Language )
8485 if len (runtimes ) == 0 {
8586 return fmt .Errorf ("CLI doesn't support the specified language yet for AWS Lambda: %s" , cfg .Language )
8687 }
@@ -94,23 +95,15 @@ func addAWSLambda(cmd *cobra.Command, args []string) error {
9495 }
9596 }
9697
97- if err := lambda . AddConfig (cfg , awsRegion , awsRuntime ); err != nil {
98+ if err := aws . AddPlatform (cfg , awsRegion , awsRuntime ); err != nil {
9899 return err
99100 }
100101
101- if err := lambda .AddHandler (cfg ); err != nil {
102- return err
103- }
104-
105- if err := config .SaveConfig (cfg ); err != nil {
106- return fmt .Errorf ("failed to save config: %w" , err )
107- }
108-
109- fmt .Println ("Added AWS Lambda platform." )
102+ fmt .Println ("Added AWS platform." )
110103 return nil
111104}
112105
113- func addGCPCloudRun (cmd * cobra.Command , args []string ) error {
106+ func addGCP (cmd * cobra.Command , args []string ) error {
114107 cfg , err := config .LoadConfig ()
115108 if err != nil {
116109 return fmt .Errorf ("failed to load config: %w" , err )
@@ -136,9 +129,9 @@ func addGCPCloudRun(cmd *cobra.Command, args []string) error {
136129 }
137130
138131 if gcpRuntime == "" {
139- runtimes := getGCPRuntimes (cfg .Language )
132+ runtimes := getGCPCloudRunRuntimes (cfg .Language )
140133 if len (runtimes ) == 0 {
141- return fmt .Errorf ("CLI doesn't support the specified language yet for GCP Cloud Run : %s" , cfg .Language )
134+ return fmt .Errorf ("CLI doesn't support the specified language yet for GCP: %s" , cfg .Language )
142135 }
143136
144137 runtimeQ := & survey.Select {
@@ -150,36 +143,16 @@ func addGCPCloudRun(cmd *cobra.Command, args []string) error {
150143 }
151144 }
152145
153- if err := cloudrun . AddConfig (cfg , gcpRegion , gcpProjectId , gcpRuntime ); err != nil {
146+ if err := gcp . AddPlatform (cfg , gcpRegion , gcpRuntime , gcpProjectId ); err != nil {
154147 return err
155148 }
156149
157- if err := cloudrun .AddHandler (cfg ); err != nil {
158- return err
159- }
160-
161- if err := config .SaveConfig (cfg ); err != nil {
162- return fmt .Errorf ("failed to save config: %w" , err )
163- }
164-
165150 return nil
166151}
167152
168153func listPlatforms () error {
169- cfg , err := config .LoadConfig ()
170- if err != nil {
171- return fmt .Errorf ("failed to load config: %w" , err )
172- }
173-
174- var platforms []string
175-
176- if cfg .AWSLambda != nil {
177- platforms = append (platforms , "aws-lambda" )
178- }
179- if cfg .GCPCloudRun != nil {
180- platforms = append (platforms , "gcp-cloudrun" )
181- }
182154
155+ platforms := infra .ListPlatforms ()
183156 if len (platforms ) == 0 {
184157 fmt .Println ("No platforms configured." )
185158 } else {
@@ -192,7 +165,7 @@ func listPlatforms() error {
192165 return nil
193166}
194167
195- func getAWSRuntimes (language lang.Language ) []string {
168+ func getAWSLambdaRuntimes (language lang.Language ) []string {
196169 switch language {
197170 case lang .Python :
198171 return []string {"python3.8" , "python3.9" , "python3.10" , "python3.11" , "python3.12" }
@@ -203,7 +176,7 @@ func getAWSRuntimes(language lang.Language) []string {
203176 }
204177}
205178
206- func getGCPRuntimes (language lang.Language ) []string {
179+ func getGCPCloudRunRuntimes (language lang.Language ) []string {
207180 switch language {
208181 case lang .Python :
209182 return []string {"python37" , "python38" , "python39" , "python310" , "python311" , "python312" }
0 commit comments