95 lines
1.9 KiB
Go
95 lines
1.9 KiB
Go
package cli
|
|
|
|
import (
|
|
"strings"
|
|
|
|
logging "github.com/ipfs/go-log/v2"
|
|
"github.com/urfave/cli/v2"
|
|
|
|
"github.com/filecoin-project/lotus/api"
|
|
cliutil "github.com/filecoin-project/lotus/cli/util"
|
|
)
|
|
|
|
var log = logging.Logger("cli")
|
|
|
|
const (
|
|
metadataTraceContext = "traceContext"
|
|
)
|
|
|
|
// custom CLI error
|
|
|
|
type ErrCmdFailed struct {
|
|
msg string
|
|
}
|
|
|
|
func (e *ErrCmdFailed) Error() string {
|
|
return e.msg
|
|
}
|
|
|
|
func NewCliError(s string) error {
|
|
return &ErrCmdFailed{s}
|
|
}
|
|
|
|
// ApiConnector returns API instance
|
|
type ApiConnector func() api.FullNode
|
|
|
|
func GetFullNodeServices(ctx *cli.Context) (ServicesAPI, error) {
|
|
if tn, ok := ctx.App.Metadata["test-services"]; ok {
|
|
return tn.(ServicesAPI), nil
|
|
}
|
|
|
|
api, c, err := GetFullNodeAPI(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &ServicesImpl{api: api, closer: c}, nil
|
|
}
|
|
|
|
var GetAPIInfo = cliutil.GetAPIInfo
|
|
var GetRawAPI = cliutil.GetRawAPI
|
|
var GetAPI = cliutil.GetAPI
|
|
|
|
var DaemonContext = cliutil.DaemonContext
|
|
var ReqContext = cliutil.ReqContext
|
|
|
|
var GetFullNodeAPI = cliutil.GetFullNodeAPI
|
|
var GetGatewayAPI = cliutil.GetGatewayAPI
|
|
|
|
var GetStorageMinerAPI = cliutil.GetStorageMinerAPI
|
|
var GetWorkerAPI = cliutil.GetWorkerAPI
|
|
|
|
var CommonCommands = []*cli.Command{
|
|
netCmd,
|
|
authCmd,
|
|
logCmd,
|
|
waitApiCmd,
|
|
fetchParamCmd,
|
|
pprofCmd,
|
|
VersionCmd,
|
|
}
|
|
|
|
var Commands = []*cli.Command{
|
|
WithCategory("basic", sendCmd),
|
|
WithCategory("basic", walletCmd),
|
|
WithCategory("basic", clientCmd),
|
|
WithCategory("basic", multisigCmd),
|
|
WithCategory("basic", paychCmd),
|
|
WithCategory("developer", authCmd),
|
|
WithCategory("developer", mpoolCmd),
|
|
WithCategory("developer", stateCmd),
|
|
WithCategory("developer", chainCmd),
|
|
WithCategory("developer", logCmd),
|
|
WithCategory("developer", waitApiCmd),
|
|
WithCategory("developer", fetchParamCmd),
|
|
WithCategory("network", netCmd),
|
|
WithCategory("network", syncCmd),
|
|
pprofCmd,
|
|
VersionCmd,
|
|
}
|
|
|
|
func WithCategory(cat string, cmd *cli.Command) *cli.Command {
|
|
cmd.Category = strings.ToUpper(cat)
|
|
return cmd
|
|
}
|