From af8f52e2e4c879935656dd93c2fb564c6e2ce515 Mon Sep 17 00:00:00 2001 From: flu0r1ne Date: Thu, 22 Jul 2021 00:41:30 -0500 Subject: Parse within subcommands --- snap/parsing.go | 19 ++++++++++++++++++- snap/parsing_test.go | 12 ++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) (limited to 'snap') diff --git a/snap/parsing.go b/snap/parsing.go index a848c33..e878077 100644 --- a/snap/parsing.go +++ b/snap/parsing.go @@ -78,7 +78,7 @@ func ToRelative(snapish string) * Relative { return ref; } - if ref := parseRelativeSyntax(snapish, "-"); ref != nil { + if ref := parseRelativeSyntax(snapish, "~"); ref != nil { ref.offset = -ref.offset; return ref; } @@ -86,4 +86,21 @@ func ToRelative(snapish string) * Relative { return &Relative{ snapshot: snapish, }; +} + +// FROM, TO +func ParseDiff(snapdiff string) (fromRel, toRel *Relative) { + snapishes := strings.Split(snapdiff, "..") + + if(len(snapishes) > 2) { + die.Fatal("Cannot diff more than two snapshots"); + } + + fromRel = ToRelative(snapishes[0]) + toRel = &Relative{} + if(len(snapishes) == 2) { + toRel = ToRelative(snapishes[1]) + } + + return } \ No newline at end of file diff --git a/snap/parsing_test.go b/snap/parsing_test.go index 1a87723..4aa232e 100644 --- a/snap/parsing_test.go +++ b/snap/parsing_test.go @@ -9,16 +9,16 @@ func TestRelativeParsing(t * testing.T) { offset int } { {"snapshot", "snapshot", 0}, - {"testing--", "testing", -2}, + {"testing~~", "testing", -2}, {"%SNAPSHOT%^+++", "%SNAPSHOT%^", 3}, - {"--prefixed", "--prefixed", 0}, + {"~~prefixed", "~~prefixed", 0}, {"+++", "", 3}, - {"---", "", -3}, + {"~~~", "", -3}, {"+5", "", 5}, - {"-3", "", -3}, + {"~3", "", -3}, {"+", "", 1}, - {"-", "", -1}, - {`"-"`, "-", 0}, + {"~", "", -1}, + {`"~"`, "~", 0}, } for _, c := range cases { -- cgit v1.2.3