From 05912fbf27846af1f4ca1b824cc39815179d430e Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 14 Nov 2018 22:18:20 +0300 Subject: Add support for repository typed URLs (git+https://..., etc) --- libbbot/manifest.cxx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'libbbot') diff --git a/libbbot/manifest.cxx b/libbbot/manifest.cxx index cc8afb5..2f70b75 100644 --- a/libbbot/manifest.cxx +++ b/libbbot/manifest.cxx @@ -581,9 +581,6 @@ namespace bbot if (!repo_url) bad_value ("no task repository URL specified"); - if (!repo_type) - bad_value ("no task repository type specified"); - if (machine.empty ()) bad_value ("no task machine specified"); @@ -594,11 +591,10 @@ namespace bbot // try { - // Call remote/absolute repository location constructor (throws + // Create remote/absolute repository location (will throw // invalid_argument for relative location). // - repository = repository_location (repository_url (repo_url->value), - *repo_type); + repository = repository_location (repo_url->value, repo_type); } catch (const invalid_argument& e) { @@ -624,8 +620,13 @@ namespace bbot s.next ("name", name.string ()); s.next ("version", version.string ()); + + // Note that the repository location is assumed to be remote or absolute, + // and so the URL schema encapsulates the repository type if it is + // unguessable otherwise. Thus we don't serialize the repository-type + // manifest value. + // s.next ("repository-url", repository.string ()); - s.next ("repository-type", to_string (repository.type ())); for (const auto& v: trust) s.next ("trust", v); -- cgit v1.1