92 lines
1.9 KiB
Go
92 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")
|
|
|
|
// 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", filplusCmd),
|
|
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
|
|
}
|