Add API to get/set metadata versions
This allows for greater control over versioning of the repo.
Change-Id: I163230ab14816c31b2d86c8b2705f9bdbf124bec
diff --git a/repo.go b/repo.go
index 79c08b8..5192292 100644
--- a/repo.go
+++ b/repo.go
@@ -141,6 +141,58 @@
return targets.Targets, nil
}
+func (r *Repo) SetTargetsVersion(v int) error {
+ t, err := r.targets()
+ if err != nil {
+ return err
+ }
+ t.Version = v
+ return r.setMeta("targets.json", t)
+}
+
+func (r *Repo) TargetsVersion() (int, error) {
+ t, err := r.targets()
+ if err != nil {
+ return -1, err
+ }
+ return t.Version, nil
+}
+
+func (r *Repo) SetTimestampVersion(v int) error {
+ ts, err := r.timestamp()
+ if err != nil {
+ return err
+ }
+ ts.Version = v
+ return r.setMeta("timestamp.json", ts)
+}
+
+func (r *Repo) TimestampVersion() (int, error) {
+ ts, err := r.timestamp()
+ if err != nil {
+ return -1, err
+ }
+ return ts.Version, nil
+}
+
+func (r *Repo) SetSnapshotVersion(v int) error {
+ s, err := r.snapshot()
+ if err != nil {
+ return err
+ }
+
+ s.Version = v
+ return r.setMeta("snapshot.json", s)
+}
+
+func (r *Repo) SnapshotVersion() (int, error) {
+ s, err := r.snapshot()
+ if err != nil {
+ return -1, err
+ }
+ return s.Version, nil
+}
+
func (r *Repo) targets() (*data.Targets, error) {
targetsJSON, ok := r.meta["targets.json"]
if !ok {