aboutsummaryrefslogtreecommitdiff
path: root/libbbot/manifest.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbbot/manifest.cxx')
-rw-r--r--libbbot/manifest.cxx15
1 files changed, 8 insertions, 7 deletions
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);