Skip to content

Commit 7a8f6fb

Browse files
committed
parse range
1 parent 3873cc8 commit 7a8f6fb

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

cmd/cortex/chaincmd.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ import (
2121
"fmt"
2222
"os"
2323
"path/filepath"
24+
"regexp"
2425
"runtime"
2526
"strconv"
27+
"strings"
2628
"sync/atomic"
2729
"time"
2830

@@ -532,3 +534,33 @@ func hashish(x string) bool {
532534
_, err := strconv.Atoi(x)
533535
return err != nil
534536
}
537+
538+
func parseRange(s string) (start uint64, end uint64, ok bool) {
539+
log.Info("Parsing block range", "input", s)
540+
if m, _ := regexp.MatchString("^[0-9]+-[0-9]+$", s); m {
541+
s1, s2, _ := strings.Cut(s, "-")
542+
start, err := strconv.ParseUint(s1, 10, 64)
543+
if err != nil {
544+
return 0, 0, false
545+
}
546+
end, err = strconv.ParseUint(s2, 10, 64)
547+
if err != nil {
548+
return 0, 0, false
549+
}
550+
if start > end {
551+
return 0, 0, false
552+
}
553+
log.Info("Parsing block range", "start", start, "end", end)
554+
return start, end, true
555+
}
556+
if m, _ := regexp.MatchString("^[0-9]+$", s); m {
557+
start, err := strconv.ParseUint(s, 10, 64)
558+
if err != nil {
559+
return 0, 0, false
560+
}
561+
end = start
562+
log.Info("Parsing single block range", "block", start)
563+
return start, end, true
564+
}
565+
return 0, 0, false
566+
}

0 commit comments

Comments
 (0)