Skip to content

Commit 64b4d4f

Browse files
committed
feature: flag to enable/disable experimental features
Signed-off-by: Valery Piashchynski <[email protected]>
1 parent b5acfd6 commit 64b4d4f

File tree

5 files changed

+17
-13
lines changed

5 files changed

+17
-13
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/roadrunner-server/beanstalk/v4 v4.5.9
1717
github.com/roadrunner-server/boltdb/v4 v4.7.6
1818
github.com/roadrunner-server/centrifuge/v4 v4.5.3
19-
github.com/roadrunner-server/config/v4 v4.4.9
19+
github.com/roadrunner-server/config/v4 v4.5.0
2020
github.com/roadrunner-server/endure/v2 v2.4.3
2121
github.com/roadrunner-server/errors v1.3.0
2222
github.com/roadrunner-server/fileserver/v4 v4.1.8

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -1241,8 +1241,8 @@ github.com/roadrunner-server/boltdb/v4 v4.7.6 h1:vRWB03XgcKFDMEn/7h5puOE0MCKD0ZX
12411241
github.com/roadrunner-server/boltdb/v4 v4.7.6/go.mod h1:rgzPNyMxGnOzANSQkyfY+IGBLCaYAjd3+rwlsmmqJ7A=
12421242
github.com/roadrunner-server/centrifuge/v4 v4.5.3 h1:jFAiV+sHBiAsca+aIbxjI7lMIRmyXtPHMV64ibggcMA=
12431243
github.com/roadrunner-server/centrifuge/v4 v4.5.3/go.mod h1:1+qRJAlB0fUAXFMfjzu9a9aGsGoP+m+YHI3CGYM2Ua0=
1244-
github.com/roadrunner-server/config/v4 v4.4.9 h1:RkYs6Fd3Lo5ZdHOm8RTsX7jlySyDpXyZzt0rp7hw38A=
1245-
github.com/roadrunner-server/config/v4 v4.4.9/go.mod h1:3GZTCaZXUEcLTILoauurn0tMgnu0/58RV9k+Zewmsz0=
1244+
github.com/roadrunner-server/config/v4 v4.5.0 h1:2XWeu9XZ0eeenCpQEPHRJ+whD/FnayazBEIsSJj3pbo=
1245+
github.com/roadrunner-server/config/v4 v4.5.0/go.mod h1:3GZTCaZXUEcLTILoauurn0tMgnu0/58RV9k+Zewmsz0=
12461246
github.com/roadrunner-server/endure/v2 v2.4.3 h1:R9DdsLiLjtSFivZ1HKk/1eDZ0TYaKHQzakVwz9D2hto=
12471247
github.com/roadrunner-server/endure/v2 v2.4.3/go.mod h1:4n3PdwZ3h/IRL2enDGvEVXtaQgqRnZ74VOyZtOJq528=
12481248
github.com/roadrunner-server/errors v1.3.0 h1:kLVXpXne0jMReN7pj8KIhyYyjqKjsPC5DRGqMsd4/Fo=

internal/cli/root.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ func NewCommand(cmdName string) *cobra.Command { //nolint:funlen,gocognit
4242
override := &[]string{}
4343
// do not print startup message
4444
silent := toPtr(false)
45+
// enable experimental features
46+
experimental := toPtr(false)
4547

4648
// working directory
4749
var workDir string
@@ -146,6 +148,7 @@ func NewCommand(cmdName string) *cobra.Command { //nolint:funlen,gocognit
146148

147149
f := cmd.PersistentFlags()
148150

151+
f.BoolVarP(experimental, "enable-experimental", "e", false, "enable experimental features")
149152
f.BoolVarP(forceStop, "force", "f", false, "force stop")
150153
f.BoolVarP(pidFile, "pid", "p", false, "create a .pid file")
151154
f.StringVarP(cfgFile, "config", "c", ".rr.yaml", "config file")
@@ -158,7 +161,7 @@ func NewCommand(cmdName string) *cobra.Command { //nolint:funlen,gocognit
158161
cmd.AddCommand(
159162
workers.NewCommand(cfgFile, override),
160163
reset.NewCommand(cfgFile, override, silent),
161-
serve.NewCommand(override, cfgFile, silent),
164+
serve.NewCommand(override, cfgFile, silent, experimental),
162165
stop.NewCommand(silent, forceStop),
163166
jobs.NewCommand(cfgFile, override, silent),
164167
)

internal/cli/serve/command.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const (
2121
)
2222

2323
// NewCommand creates `serve` command.
24-
func NewCommand(override *[]string, cfgFile *string, silent *bool) *cobra.Command { //nolint:funlen
24+
func NewCommand(override *[]string, cfgFile *string, silent *bool, experimental *bool) *cobra.Command { //nolint:funlen
2525
return &cobra.Command{
2626
Use: "serve",
2727
Short: "Start RoadRunner server",
@@ -39,11 +39,12 @@ func NewCommand(override *[]string, cfgFile *string, silent *bool) *cobra.Comman
3939
}
4040

4141
cfg := &configImpl.Plugin{
42-
Path: *cfgFile,
43-
Prefix: rrPrefix,
44-
Timeout: containerCfg.GracePeriod,
45-
Flags: *override,
46-
Version: meta.Version(),
42+
Path: *cfgFile,
43+
Prefix: rrPrefix,
44+
Timeout: containerCfg.GracePeriod,
45+
Flags: *override,
46+
Version: meta.Version(),
47+
ExperimentalFeatures: *experimental,
4748
}
4849

4950
endureOptions := []endure.Options{
@@ -58,7 +59,7 @@ func NewCommand(override *[]string, cfgFile *string, silent *bool) *cobra.Comman
5859
ll, err := container.ParseLogLevel(containerCfg.LogLevel)
5960
if err != nil {
6061
if !*silent {
61-
fmt.Printf("[WARN] Failed to parse log level, using default (error): %s\n", err)
62+
fmt.Println(fmt.Errorf("[WARN] Failed to parse log level, using default (error): %w", err))
6263
}
6364
}
6465
cont := endure.New(ll, endureOptions...)

internal/cli/serve/command_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import (
1010

1111
func TestCommandProperties(t *testing.T) {
1212
path := ""
13-
cmd := serve.NewCommand(nil, &path, nil)
13+
cmd := serve.NewCommand(nil, &path, nil, nil)
1414

1515
assert.Equal(t, "serve", cmd.Use)
1616
assert.NotNil(t, cmd.RunE)
1717
}
1818

1919
func TestCommandNil(t *testing.T) {
20-
cmd := serve.NewCommand(nil, nil, nil)
20+
cmd := serve.NewCommand(nil, nil, nil, nil)
2121

2222
assert.Equal(t, "serve", cmd.Use)
2323
assert.NotNil(t, cmd.RunE)

0 commit comments

Comments
 (0)