mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-28 07:35:52 +00:00
feat: add get range feat to export tool (#2131)
This commit is contained in:
@@ -16,6 +16,11 @@ type Args struct {
|
||||
WsServer string
|
||||
ServerMode bool
|
||||
ShowRange bool
|
||||
GetRange bool
|
||||
// for authenticating DB
|
||||
Host string
|
||||
Username string
|
||||
Password string
|
||||
}
|
||||
|
||||
func Parse() (*Args, error) {
|
||||
@@ -31,33 +36,56 @@ func Parse() (*Args, error) {
|
||||
wsServer := fs.StringP("ws_server", "w", "0.0.0.0:6006", "rippled's gRPC server address")
|
||||
serverMode := fs.BoolP("server", "s", false, "Start server mode")
|
||||
showRange := fs.BoolP("range", "r", false, "Show the range of the snapshot")
|
||||
getRange := fs.Bool("getRange", false, "Get the available DB range of the host")
|
||||
|
||||
host := fs.String("host", "", "Database host (e.g., 127.0.0.1)")
|
||||
username := fs.String("username", "", "Database username")
|
||||
password := fs.String("password", "", "Database password")
|
||||
|
||||
fs.Parse(os.Args[1:])
|
||||
|
||||
if *serverMode && *exportMode != "" {
|
||||
return nil, fmt.Errorf("Invalid usage: --server and --export cannot be used at the same time.")
|
||||
return nil, fmt.Errorf("invalid usage: --server and --export cannot be used at the same time")
|
||||
}
|
||||
|
||||
if *serverMode {
|
||||
if *grpcServer == "" || *wsServer == "" || *path == "" {
|
||||
return nil, fmt.Errorf("Invalid usage: --grpc_server and --ws_server and --path are required for server mode.")
|
||||
return nil, fmt.Errorf("invalid usage: --grpc_server and --ws_server and --path are required for server mode")
|
||||
}
|
||||
} else if *exportMode != "" {
|
||||
if *exportMode == "full" || *exportMode == "delta" {
|
||||
if *seq == 0 || *endSeq == 0 || *path == "" || *grpcServer == "" {
|
||||
return nil, fmt.Errorf("Invalid usage: --start_seq, --end_seq, --grpc_server and --path are required for export.")
|
||||
return nil, fmt.Errorf("invalid usage: --start_seq, --end_seq, --grpc_server and --path are required for export")
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("Invalid usage: Invalid export mode. Use 'full' or 'delta'.")
|
||||
return nil, fmt.Errorf("invalid usage: Invalid export mode. Use 'full' or 'delta'")
|
||||
}
|
||||
} else if *showRange {
|
||||
if *path == "" {
|
||||
return nil, fmt.Errorf("Invalid usage: --path is required for show range.")
|
||||
return nil, fmt.Errorf("invalid usage: --path is required for show range")
|
||||
}
|
||||
} else if *getRange {
|
||||
if *host == "" || *username == "" || *password == "" {
|
||||
return nil, fmt.Errorf("invalid usage: --host, --username, and --password are required for getRange")
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("Invalid usage: --export or --server or --range flag is required.")
|
||||
return nil, fmt.Errorf("invalid usage: --export or --server or --range flag is required")
|
||||
}
|
||||
|
||||
return &Args{*exportMode, *seq, *endSeq, *path, *grpcServer, *wsServer, *serverMode, *showRange}, nil
|
||||
return &Args{
|
||||
ExportMode: *exportMode,
|
||||
StartSeq: *seq,
|
||||
EndSeq: *endSeq,
|
||||
Path: *path,
|
||||
GrpcServer: *grpcServer,
|
||||
WsServer: *wsServer,
|
||||
ServerMode: *serverMode,
|
||||
ShowRange: *showRange,
|
||||
GetRange: *getRange,
|
||||
Host: *host,
|
||||
Username: *username,
|
||||
Password: *password,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func PrintUsage() {
|
||||
|
||||
Reference in New Issue
Block a user