mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
//go:build dev
|
|
// +build dev
|
|
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/lightninglabs/loop/looprpc"
|
|
"github.com/urfave/cli/v3"
|
|
)
|
|
|
|
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,
|
|
Hidden: true,
|
|
}
|
|
|
|
func forceAutoloop(ctx context.Context, cmd *cli.Command) error {
|
|
client, cleanup, err := getDebugClient(ctx, cmd)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer cleanup()
|
|
|
|
cfg, err := client.ForceAutoLoop(ctx, &looprpc.ForceAutoLoopRequest{})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
printRespJSON(cfg)
|
|
|
|
return nil
|
|
}
|
|
|
|
func getDebugClient(ctx context.Context, cmd *cli.Command) (looprpc.DebugClient, func(), error) {
|
|
rpcServer := cmd.String("rpcserver")
|
|
tlsCertPath, macaroonPath, err := extractPathArgs(cmd)
|
|
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
|
|
}
|