diff --git a/cmd/sst/errors.go b/cmd/sst/errors.go index 13d490fc5..58a09ebe9 100644 --- a/cmd/sst/errors.go +++ b/cmd/sst/errors.go @@ -6,8 +6,11 @@ import ( ) func TransformError(err error) error { - mapping := map[error]string{} - mapping[project.ErrInvalidStageName] = "The stage name is invalid. It can only contain alphanumeric characters and hyphens." + mapping := map[error]string{ + project.ErrInvalidStageName: "The stage name is invalid. It can only contain alphanumeric characters and hyphens.", + project.ErrV2Config: "You are using sst ion and this looks like an sst v2 config", + } + match, ok := mapping[err] if !ok { return err diff --git a/cmd/sst/main.go b/cmd/sst/main.go index f34d462a8..b95727f3c 100644 --- a/cmd/sst/main.go +++ b/cmd/sst/main.go @@ -59,7 +59,6 @@ func main() { } } else { fmt.Println("Unexpected error occurred. Please check the logs for more details.") - fmt.Println(err.Error()) } os.Exit(1) } diff --git a/pkg/project/project.go b/pkg/project/project.go index a1316f5d1..8b5cf8a56 100644 --- a/pkg/project/project.go +++ b/pkg/project/project.go @@ -69,7 +69,8 @@ type ProjectConfig struct { Config string } -var ErrInvalidStageName = fmt.Errorf("Invalid stage name") +var ErrInvalidStageName = fmt.Errorf("invalid stage name") +var ErrV2Config = fmt.Errorf("sstv2 config detected") var StageRegex = regexp.MustCompile(`^[a-zA-Z0-9-]+$`) func New(input *ProjectConfig) (*Project, error) { @@ -123,6 +124,10 @@ func New(input *ProjectConfig) (*Project, error) { }, Code: fmt.Sprintf(` import mod from '%s'; +if (mod.stacks || mod.config) { + console.log("v2") + process.exit(0) +} console.log("~j" + JSON.stringify(mod.app({ stage: $input.stage || undefined, })))`, @@ -140,6 +145,9 @@ console.log("~j" + JSON.stringify(mod.app({ break } + if cmd == js.CommandStdOut && line == "v2" { + return nil, ErrV2Config + } if cmd != js.CommandJSON { fmt.Println(line) continue