5555
5656var userDefinedHasuraCli string
5757
58- const userDefinedHasuraCliFlag = "hasuracli"
59-
6058const (
6159 // default ports
6260 defaultProxyPort = 1337
@@ -67,6 +65,10 @@ const (
6765 defaultSMTPPort = 1025
6866 defaultS3MinioPort = 9000
6967 defaultMailhogPort = 8025
68+
69+ // flags
70+ userDefinedHasuraCliFlag = "hasuracli"
71+ startTimeoutFlag = "start-timeout"
7072)
7173
7274// devCmd represents the dev command
@@ -122,6 +124,11 @@ var devCmd = &cobra.Command{
122124 return fmt .Errorf ("failed to init hasura client: %v" , err )
123125 }
124126
127+ startTimeout , err := cmd .Flags ().GetDuration (startTimeoutFlag )
128+ if err != nil {
129+ return fmt .Errorf ("failed to get start-timeout value: %v" , err )
130+ }
131+
125132 launcher := service .NewLauncher (
126133 service .NewDockerComposeManager (config , hc , ports , env , nhost .GetCurrentBranch (),
127134 projectName ,
@@ -138,7 +145,7 @@ var devCmd = &cobra.Command{
138145 signal .Notify (stopCh , syscall .SIGINT , syscall .SIGTERM )
139146
140147 go func () {
141- err = launcher .Start (ctx , debug )
148+ err = launcher .Start (ctx , startTimeout , debug )
142149
143150 if ctx .Err () == context .Canceled {
144151 return
@@ -262,6 +269,7 @@ func init() {
262269 devCmd .PersistentFlags ().Uint32 (nhost .PortSMTP , defaultSMTPPort , "Port for smtp server" )
263270 devCmd .PersistentFlags ().Uint32 (nhost .PortMinioS3 , defaultS3MinioPort , "S3 port for minio" )
264271 devCmd .PersistentFlags ().Uint32 (nhost .PortMailhog , defaultMailhogPort , "Port for mailhog UI" )
272+ devCmd .PersistentFlags ().Duration (startTimeoutFlag , 5 * time .Minute , "Timeout for starting services" )
265273 devCmd .PersistentFlags ().BoolVar (& noBrowser , "no-browser" , false , "Don't open browser windows automatically" )
266274
267275 devCmd .PersistentFlags ().StringVar (& userDefinedHasuraCli , userDefinedHasuraCliFlag , viper .GetString (userDefinedHasuraCliFlag ), "User-defined path for hasura-cli binary" )
0 commit comments