@@ -19,6 +19,7 @@ import (
1919func Do (args []string , stdin io.Reader , stdout io.Writer , stderr io.Writer ) int {
2020 rootCmd := & cobra.Command {Use : "sqlc" , SilenceUsage : true }
2121 rootCmd .PersistentFlags ().StringP ("file" , "f" , "" , "specify an alternate config file (default: sqlc.yaml)" )
22+ rootCmd .PersistentFlags ().BoolP ("experimental" , "x" , false , "enable experimental features (default: false)" )
2223
2324 rootCmd .AddCommand (checkCmd )
2425 rootCmd .AddCommand (genCmd )
@@ -76,10 +77,12 @@ var initCmd = &cobra.Command{
7677}
7778
7879type Env struct {
80+ ExperimentalFeatures bool
7981}
8082
81- func ParseEnv () Env {
82- return Env {}
83+ func ParseEnv (c * cobra.Command ) Env {
84+ x := c .Flag ("experimental" )
85+ return Env {ExperimentalFeatures : x != nil && x .Changed }
8386}
8487
8588func getConfigPath (stderr io.Writer , f * pflag.Flag ) (string , string ) {
@@ -111,7 +114,7 @@ var genCmd = &cobra.Command{
111114 Run : func (cmd * cobra.Command , args []string ) {
112115 stderr := cmd .ErrOrStderr ()
113116 dir , name := getConfigPath (stderr , cmd .Flag ("file" ))
114- output , err := Generate (ParseEnv (), dir , name , stderr )
117+ output , err := Generate (ParseEnv (cmd ), dir , name , stderr )
115118 if err != nil {
116119 os .Exit (1 )
117120 }
@@ -131,7 +134,7 @@ var checkCmd = &cobra.Command{
131134 RunE : func (cmd * cobra.Command , args []string ) error {
132135 stderr := cmd .ErrOrStderr ()
133136 dir , name := getConfigPath (stderr , cmd .Flag ("file" ))
134- if _ , err := Generate (Env {} , dir , name , stderr ); err != nil {
137+ if _ , err := Generate (ParseEnv ( cmd ) , dir , name , stderr ); err != nil {
135138 os .Exit (1 )
136139 }
137140 return nil
0 commit comments