diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2018-04-24 22:10:57 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-04-24 22:10:57 +0300 |
commit | 99dc5d7463236ee9c094736dfbcb56641e782335 (patch) | |
tree | 5734d5611b24e30346331a33a1d8cf247bcd673d /libbpkg/manifest.cxx | |
parent | bba520774fd6185f62a6bf52c61b98104a826f5f (diff) |
Add fragment manifest value
Diffstat (limited to 'libbpkg/manifest.cxx')
-rw-r--r-- | libbpkg/manifest.cxx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libbpkg/manifest.cxx b/libbpkg/manifest.cxx index 2374b77..ab3acf1 100644 --- a/libbpkg/manifest.cxx +++ b/libbpkg/manifest.cxx @@ -1196,6 +1196,19 @@ namespace bpkg m.sha256sum = move (v); } + else if (n == "fragment") + { + if (!il) + bad_name ("package repository fragment not allowed"); + + if (m.fragment) + bad_name ("package repository fragment redefinition"); + + if (v.empty ()) + bad_value ("empty package repository fragment"); + + m.fragment = move (v); + } else if (!iu) bad_name ("unknown name '" + n + "' in package manifest"); } @@ -1354,6 +1367,9 @@ namespace bpkg if (sha256sum) s.next ("sha256sum", *sha256sum); + if (fragment) + s.next ("fragment", *fragment); + s.next ("", ""); // End of manifest. } @@ -1412,6 +1428,16 @@ namespace bpkg bad_value ("invalid package location"); } } + else if (n == "fragment") + { + if (r.fragment) + bad_name ("package repository fragment redefinition"); + + if (v.empty ()) + bad_value ("empty package repository fragment"); + + r.fragment = move (v); + } else if (!iu) bad_name ("unknown name '" + n + "' in package manifest"); } @@ -1452,6 +1478,9 @@ namespace bpkg s.next ("location", m.location->posix_representation ()); + if (m.fragment) + s.next ("fragment", *m.fragment); + s.next ("", ""); // End of manifest. } @@ -2564,6 +2593,16 @@ namespace bpkg r.certificate = move (v); } + else if (n == "fragment") + { + if (r.fragment) + bad_name ("fragment redefinition"); + + if (v.empty ()) + bad_value ("empty fragment"); + + r.fragment = move (v); + } else if (!iu) bad_name ("unknown name '" + n + "' in repository manifest"); } @@ -2717,6 +2756,9 @@ namespace bpkg s.next ("certificate", *certificate); } + if (fragment) + s.next ("fragment", *fragment); + s.next ("", ""); // End of manifest. } |