aboutsummaryrefslogtreecommitdiff
path: root/mod/types-parsers.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'mod/types-parsers.cxx')
-rw-r--r--mod/types-parsers.cxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/mod/types-parsers.cxx b/mod/types-parsers.cxx
index 6b0e721..e40a777 100644
--- a/mod/types-parsers.cxx
+++ b/mod/types-parsers.cxx
@@ -7,6 +7,7 @@
#include <mod/options.hxx>
using namespace std;
+using namespace bpkg;
using namespace web::xhtml;
namespace brep
@@ -50,6 +51,30 @@ namespace brep
parse_path (x, s);
}
+ // Parse repository_url.
+ //
+ void parser<repository_url>::
+ parse (repository_url& x, bool& xs, scanner& s)
+ {
+ xs = true;
+
+ const char* o (s.next ());
+
+ if (!s.more ())
+ throw missing_value (o);
+
+ const char* v (s.next ());
+
+ try
+ {
+ x = repository_url (v);
+ }
+ catch (const invalid_argument&)
+ {
+ throw invalid_value (o, v);
+ }
+ }
+
// Parse page_form.
//
void parser<page_form>::