From 98e6bf08c7dbd59de0b3a9e84e85b6daa86e2efe Mon Sep 17 00:00:00 2001 From: sputn1ck Date: Thu, 20 Feb 2025 15:38:52 +0100 Subject: [PATCH] cmd: add debug forceautoloop cmd --- cmd/loop/debug.go | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 cmd/loop/debug.go diff --git a/cmd/loop/debug.go b/cmd/loop/debug.go new file mode 100644 index 00000000..d3215a39 --- /dev/null +++ b/cmd/loop/debug.go @@ -0,0 +1,60 @@ +//go:build dev +// +build dev + +package main + +import ( + "context" + + "github.com/lightninglabs/loop/looprpc" + "github.com/urfave/cli" +) + +func init() { + // Register the debug command. + commands = append(commands, forceAutoloopCmd) +} + +var forceAutoloopCmd = cli.Command{ + Name: "forceautoloop", + Usage: ` + Forces to trigger an autoloop step, regardless of the current internal + autoloop timer. THIS MUST NOT BE USED IN A PROD ENVIRONMENT. + `, + Action: forceAutoloop, +} + +func forceAutoloop(ctx *cli.Context) error { + client, cleanup, err := getDebugClient(ctx) + if err != nil { + return err + } + defer cleanup() + + cfg, err := client.ForceAutoLoop( + context.Background(), &looprpc.ForceAutoLoopRequest{}, + ) + if err != nil { + return err + } + + printRespJSON(cfg) + + return nil +} + +func getDebugClient(ctx *cli.Context) (looprpc.DebugClient, func(), error) { + rpcServer := ctx.GlobalString("rpcserver") + tlsCertPath, macaroonPath, err := extractPathArgs(ctx) + if err != nil { + return nil, nil, err + } + conn, err := getClientConn(rpcServer, tlsCertPath, macaroonPath) + if err != nil { + return nil, nil, err + } + cleanup := func() { conn.Close() } + + debugClient := looprpc.NewDebugClient(conn) + return debugClient, cleanup, nil +}