aboutsummaryrefslogtreecommitdiff
path: root/libbpkg/manifest.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-04-19 22:43:08 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-04-19 22:43:08 +0300
commitbba520774fd6185f62a6bf52c61b98104a826f5f (patch)
tree4be19b347486932c7858349bb7a7c476e88dd5a4 /libbpkg/manifest.cxx
parent7cf0854121525747b438b7f94bf2d050f61fb615 (diff)
Add support for comma-separated list of git reference filter
Diffstat (limited to 'libbpkg/manifest.cxx')
-rw-r--r--libbpkg/manifest.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/libbpkg/manifest.cxx b/libbpkg/manifest.cxx
index e1dfb52..2374b77 100644
--- a/libbpkg/manifest.cxx
+++ b/libbpkg/manifest.cxx
@@ -2093,7 +2093,7 @@ namespace bpkg
// Verify the URL fragment.
//
if (url_.fragment)
- git_ref_filter r (*url_.fragment);
+ parse_git_ref_filters (*url_.fragment);
break;
}
@@ -2327,6 +2327,19 @@ namespace bpkg
"git repository commit id must be 40 characters long");
}
+ git_ref_filters
+ parse_git_ref_filters (const string& s)
+ {
+ git_ref_filters r;
+ for (size_t p (0); p != string::npos; )
+ {
+ size_t e (s.find (',', p));
+ r.emplace_back (string (s, p, e != string::npos ? e - p : e));
+ p = e != string::npos ? e + 1 : e;
+ }
+ return r;
+ }
+
// repository_manifest
//
repository_role repository_manifest::