From 018ed419c838b3afe9bc144fd2b7c6783a05fdcd Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Tue, 10 Feb 2026 15:51:35 -0800 Subject: [PATCH] config: fix livepeer stuff --- go.mod | 5 +++-- go.sum | 6 ------ pkg/cmd/go_livepeer.go | 33 ++------------------------------- pkg/cmd/streamplace.go | 33 +++++++++------------------------ pkg/config/config.go | 19 +++++++++++++++++++ 5 files changed, 33 insertions(+), 63 deletions(-) diff --git a/go.mod b/go.mod index fb807d30..7b3f4ca0 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,8 @@ replace github.com/gocql/gocql => github.com/scylladb/gocql v1.14.4 replace github.com/AxisCommunications/go-dpop => github.com/streamplace/go-dpop v0.0.0-20250510031900-c897158a8ad4 +replace github.com/livepeer/go-livepeer => ../go-livepeer + tool github.com/bluesky-social/indigo/cmd/lexgen require ( @@ -48,7 +50,6 @@ require ( github.com/multiformats/go-multihash v0.2.3 github.com/orandin/slog-gorm v1.4.0 github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/peterbourgon/ff/v3 v3.4.0 github.com/pion/interceptor v0.1.37 github.com/pion/rtcp v1.2.16 github.com/pion/webrtc/v4 v4.0.11 @@ -64,6 +65,7 @@ require ( github.com/streamplace/oatproxy v0.0.0-20260130124113-420429019d3b github.com/stretchr/testify v1.11.1 github.com/tdewolff/canvas v0.0.0-20250728095813-50d4cb1eee71 + github.com/urfave/cli/v3 v3.6.2 github.com/whyrusleeping/cbor-gen v0.3.1 github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6 gitlab.com/gitlab-org/release-cli v0.18.0 @@ -475,7 +477,6 @@ require ( github.com/ultraware/funlen v0.2.0 // indirect github.com/ultraware/whitespace v0.2.0 // indirect github.com/urfave/cli/v2 v2.27.7 // indirect - github.com/urfave/cli/v3 v3.6.2 // indirect github.com/uudashr/gocognit v1.2.0 // indirect github.com/uudashr/iface v1.3.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect diff --git a/go.sum b/go.sum index a851833c..32b084e2 100644 --- a/go.sum +++ b/go.sum @@ -923,8 +923,6 @@ github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0 github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= github.com/libp2p/go-netroute v0.2.2 h1:Dejd8cQ47Qx2kRABg6lPwknU7+nBnFRpko45/fFPuZ8= github.com/libp2p/go-netroute v0.2.2/go.mod h1:Rntq6jUAH0l9Gg17w5bFGhcC9a+vk4KNXs6s7IljKYE= -github.com/livepeer/go-livepeer v0.8.7-0.20250811105915-31d2e1f89f81 h1:ObaUiy1Jl5n7yTG96sVnU+SDqntYRZi45qdebl6RoXk= -github.com/livepeer/go-livepeer v0.8.7-0.20250811105915-31d2e1f89f81/go.mod h1:3sDsXYtDJLKcwCE8TmYjjj6yz2mPQXBHa+24u2PfWh8= github.com/livepeer/go-tools v0.3.6-0.20240130205227-92479de8531b h1:VQcnrqtCA2UROp7q8ljkh2XA/u0KRgVv0S1xoUvOweE= github.com/livepeer/go-tools v0.3.6-0.20240130205227-92479de8531b/go.mod h1:hwJ5DKhl+pTanFWl+EUpw1H7ukPO/H+MFpgA7jjshzw= github.com/livepeer/joy4 v0.1.2-0.20191121080656-b2fea45cbded h1:ZQlvR5RB4nfT+cOQee+WqmaDOgGtP2oDMhcVvR4L0yA= @@ -1080,8 +1078,6 @@ github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9/go.mod h1:x3N5drFsm2uilKKuuYo6LdyD8vZAW55sH/9w+pbo1sw= -github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= -github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= @@ -1317,8 +1313,6 @@ github.com/streamplace/atproto-oauth-golang v0.0.0-20250619231223-a9c04fb888ac h github.com/streamplace/atproto-oauth-golang v0.0.0-20250619231223-a9c04fb888ac/go.mod h1:9LlKkqciiO5lRfbX0n4Wn5KNY9nvFb4R3by8FdW2TWc= github.com/streamplace/go-dpop v0.0.0-20250510031900-c897158a8ad4 h1:L1fS4HJSaAyNnkwfuZubgfeZy8rkWmA0cMtH5Z0HqNc= github.com/streamplace/go-dpop v0.0.0-20250510031900-c897158a8ad4/go.mod h1:bGUXY9Wd4mnd+XUrOYZr358J2f6z9QO/dLhL1SsiD+0= -github.com/streamplace/oatproxy v0.0.0-20260112011721-d74b4913c93f h1:hhbQ8CtcAZVlLit/r7b9QDK7qEgOth4hgE13xV6ViBI= -github.com/streamplace/oatproxy v0.0.0-20260112011721-d74b4913c93f/go.mod h1:pXi24hA7xBHj8eEywX6wGqJOR9FaEYlGwQ/72rN6okw= github.com/streamplace/oatproxy v0.0.0-20260130124113-420429019d3b h1:BB/R1egvkEqZhGeKL3tqAlTn0mkoOaaMY6r6s18XJYA= github.com/streamplace/oatproxy v0.0.0-20260130124113-420429019d3b/go.mod h1:pXi24hA7xBHj8eEywX6wGqJOR9FaEYlGwQ/72rN6okw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/pkg/cmd/go_livepeer.go b/pkg/cmd/go_livepeer.go index d3bebfde..50eea7ab 100644 --- a/pkg/cmd/go_livepeer.go +++ b/pkg/cmd/go_livepeer.go @@ -3,32 +3,12 @@ package cmd import ( "context" "flag" - "strings" - "github.com/golang/glog" "github.com/livepeer/go-livepeer/cmd/livepeer/starter" "stream.place/streamplace/pkg/config" ) func GoLivepeer(ctx context.Context, fs *flag.FlagSet) error { - lpfs := flag.NewFlagSet("livepeer", flag.ExitOnError) - cfg := starter.NewLivepeerConfig(lpfs) - fs.VisitAll(func(f *flag.Flag) { - if !strings.HasPrefix(f.Name, "livepeer.") { - return - } - name := strings.TrimPrefix(f.Name, "livepeer.") - adapted := config.LivepeerFlags.SnakeToCamel[name] - - if adapted == "" { - panic("unknown livepeer flag: " + name) - } - err := lpfs.Set(adapted, f.Value.String()) - if err != nil { - panic(err) - } - }) - err := flag.Set("logtostderr", "true") if err != nil { return err @@ -39,18 +19,9 @@ func GoLivepeer(ctx context.Context, fs *flag.FlagSet) error { return err } - // Config file - // err = ff.Parse(fs, args, - // ff.WithConfigFileFlag("config"), - // ff.WithEnvVarPrefix("SP_LIVEPEER"), - // ) - if err != nil { - glog.Exit("Error parsing config: ", err) - } - - cfg = starter.UpdateNilsForUnsetFlags(cfg) + config.LivepeerConfig = starter.UpdateNilsForUnsetFlags(config.LivepeerConfig) - starter.StartLivepeer(ctx, cfg) + starter.StartLivepeer(ctx, config.LivepeerConfig) return nil } diff --git a/pkg/cmd/streamplace.go b/pkg/cmd/streamplace.go index 996bd010..53fe5d2a 100644 --- a/pkg/cmd/streamplace.go +++ b/pkg/cmd/streamplace.go @@ -72,11 +72,11 @@ func start(build *config.BuildFlags, platformJobs []jobFunc) error { makeMigrateCommand(build), } // Add the verbosity flag - app.Flags = append(app.Flags, &urfavecli.StringFlag{ - Name: "v", - Usage: "log verbosity level", - Value: "3", - }) + // app.Flags = append(app.Flags, &urfavecli.StringFlag{ + // Name: "v", + // Usage: "log verbosity level", + // Value: "3", + // }) app.Before = func(ctx context.Context, cmd *urfavecli.Command) (context.Context, error) { // Run self-test before starting selfTest := cmd.Name == "self-test" @@ -406,14 +406,7 @@ func runMain(ctx context.Context, build *config.BuildFlags, platformJobs []jobFu return err } group.Go(func() error { - lpfs := flag.NewFlagSet("livepeer", flag.ExitOnError) - _ = starter.NewLivepeerConfig(lpfs) - // Parse livepeer flags from mainCmd - err := lpfs.Parse([]string{}) - if err != nil { - return err - } - err = GoLivepeer(ctx, lpfs) + err = GoLivepeer(ctx, config.LivepeerFlagSet) if err != nil { return err } @@ -647,18 +640,10 @@ func makeSplitCommand(build *config.BuildFlags) *urfavecli.Command { func makeLivepeerCommand(build *config.BuildFlags) *urfavecli.Command { return &urfavecli.Command{ - Name: "livepeer", - Usage: "run livepeer gateway", - SkipFlagParsing: true, + Name: "livepeer", + Usage: "run livepeer gateway", Action: func(ctx context.Context, cmd *urfavecli.Command) error { - args := cmd.Args().Slice() - lpfs := flag.NewFlagSet("livepeer", flag.ExitOnError) - _ = starter.NewLivepeerConfig(lpfs) - err := lpfs.Parse(args) - if err != nil { - return err - } - return GoLivepeer(ctx, lpfs) + return GoLivepeer(ctx, config.LivepeerFlagSet) }, } } diff --git a/pkg/config/config.go b/pkg/config/config.go index 024d888b..b9e268be 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -7,6 +7,7 @@ import ( "encoding/json" "encoding/pem" "errors" + "flag" "fmt" "io" "net" @@ -21,6 +22,7 @@ import ( "math/rand/v2" "github.com/lestrrat-go/jwx/v2/jwk" + "github.com/livepeer/go-livepeer/cmd/livepeer/starter" "github.com/lmittmann/tint" slogGorm "github.com/orandin/slog-gorm" urfavecli "github.com/urfave/cli/v3" @@ -159,6 +161,9 @@ const ( ReplicatorIroh string = "iroh" ) +var LivepeerFlagSet *flag.FlagSet +var LivepeerConfig starter.LivepeerConfig + func (cli *CLI) NewCommand(name string) *urfavecli.Command { cmd := &urfavecli.Command{ Name: name, @@ -846,6 +851,20 @@ func (cli *CLI) NewCommand(name string) *urfavecli.Command { }) } + LivepeerFlagSet = flag.NewFlagSet("livepeer", flag.ContinueOnError) + LivepeerConfig = starter.NewLivepeerConfig(LivepeerFlagSet) + LivepeerFlagSet.VisitAll(func(f *flag.Flag) { + adapted := LivepeerFlags.CamelToSnake[f.Name] + cmd.Flags = append(cmd.Flags, &urfavecli.StringFlag{ + Name: fmt.Sprintf("livepeer.%s", adapted), + Usage: f.Usage, + Sources: urfavecli.EnvVars(fmt.Sprintf("SP_LIVEPEER_%s", adapted)), + Action: func(ctx context.Context, cmd *urfavecli.Command, s string) error { + return LivepeerFlagSet.Set(f.Name, s) + }, + }) + }) + return cmd } -- 2.51.2