Skip to content

Commit 7ef0daf

Browse files
authored
improve init command to create v2/v1 yaml file (#2335)
`sqlc init` now would generate v2 format yaml file by default, user also can use `--v1` to generate v1 format if needed.
1 parent 0ed414a commit 7ef0daf

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

Diff for: internal/cmd/cmd.go

+27-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ import (
2626

2727
func init() {
2828
uploadCmd.Flags().BoolP("dry-run", "", false, "dump upload request (default: false)")
29+
initCmd.Flags().BoolP("v1", "", false, "generate v1 config yaml file")
30+
initCmd.Flags().BoolP("v2", "", true, "generate v2 config yaml file")
31+
initCmd.MarkFlagsMutuallyExclusive("v1", "v2")
2932
}
3033

3134
// Do runs the command logic.
@@ -88,6 +91,17 @@ var initCmd = &cobra.Command{
8891
Use: "init",
8992
Short: "Create an empty sqlc.yaml settings file",
9093
RunE: func(cmd *cobra.Command, args []string) error {
94+
useV1, err := cmd.Flags().GetBool("v1")
95+
if err != nil {
96+
return err
97+
}
98+
var yamlConfig interface{}
99+
if useV1 {
100+
yamlConfig = config.V1GenerateSettings{Version: "1"}
101+
} else {
102+
yamlConfig = config.Config{Version: "2"}
103+
}
104+
91105
defer trace.StartRegion(cmd.Context(), "init").End()
92106
file := "sqlc.yaml"
93107
if f := cmd.Flag("file"); f != nil && f.Changed {
@@ -97,13 +111,24 @@ var initCmd = &cobra.Command{
97111
}
98112
}
99113
if _, err := os.Stat(file); !os.IsNotExist(err) {
114+
fmt.Printf("%s is already created\n", file)
100115
return nil
101116
}
102-
blob, err := yaml.Marshal(config.V1GenerateSettings{Version: "1"})
117+
blob, err := yaml.Marshal(yamlConfig)
103118
if err != nil {
104119
return err
105120
}
106-
return os.WriteFile(file, blob, 0644)
121+
err = os.WriteFile(file, blob, 0644)
122+
if err != nil {
123+
return err
124+
}
125+
configDoc := "https://docs.sqlc.dev/en/stable/reference/config.html"
126+
fmt.Printf(
127+
"%s is added. Please visit %s to learn more about configuration\n",
128+
file,
129+
configDoc,
130+
)
131+
return nil
107132
},
108133
}
109134

0 commit comments

Comments
 (0)