aboutsummaryrefslogtreecommitdiff
path: root/snap
diff options
context:
space:
mode:
Diffstat (limited to 'snap')
-rw-r--r--snap/parsing.go19
-rw-r--r--snap/parsing_test.go12
2 files changed, 24 insertions, 7 deletions
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 {