summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2018-11-30 12:31:39 +0100
committerPietro Albini <pietro@pietroalbini.org>2018-11-30 12:31:39 +0100
commit895daaf5e1759973c641f448e076d47d44d156d5 (patch)
tree575a16c09a10676737fa8460fc4c4b2784c2732f /src
parent584b4616ebecd82fb8b3fbb17730f21bbf96bf3b (diff)
import data from the new website
Diffstat (limited to 'src')
-rw-r--r--src/schema.rs5
-rw-r--r--src/validate.rs13
2 files changed, 17 insertions, 1 deletions
diff --git a/src/schema.rs b/src/schema.rs
index 87663cd..de30b08 100644
--- a/src/schema.rs
+++ b/src/schema.rs
@@ -162,11 +162,14 @@ struct TeamPeople {
}
#[derive(serde_derive::Deserialize, Debug)]
-#[serde(deny_unknown_fields)]
+#[serde(rename_all = "kebab-case", deny_unknown_fields)]
pub(crate) struct WebsiteData {
name: String,
description: String,
email: Option<String>,
+ repo: Option<String>,
+ discord_invite: Option<String>,
+ discord_name: Option<String>,
}
#[derive(serde_derive::Deserialize, Debug)]
diff --git a/src/validate.rs b/src/validate.rs
index 6c6830d..3c2d6c7 100644
--- a/src/validate.rs
+++ b/src/validate.rs
@@ -6,6 +6,7 @@ use std::collections::HashSet;
pub(crate) fn validate(data: &Data) -> Result<(), Error> {
let mut errors = Vec::new();
+ validate_wg_names(data, &mut errors);
validate_team_leads(data, &mut errors);
validate_team_members(data, &mut errors);
validate_inactive_members(data, &mut errors);
@@ -30,6 +31,18 @@ pub(crate) fn validate(data: &Data) -> Result<(), Error> {
Ok(())
}
+/// Ensure working group names start with `wg-`
+fn validate_wg_names(data: &Data, errors: &mut Vec<String>) {
+ wrapper(data.teams(), errors, |team, _| {
+ match (team.is_wg() == team.name().starts_with("wg-"), team.is_wg()) {
+ (false, true) => bail!("working group `{}`'s name doesn't start with wg-", team.name()),
+ (false, false) => bail!("team `{}` seems like a working group but has `wg = false`", team.name()),
+ (true, _) => {}
+ }
+ Ok(())
+ });
+}
+
/// Ensure team leaders are part of the teams they lead
fn validate_team_leads(data: &Data, errors: &mut Vec<String>) {
wrapper(data.teams(), errors, |team, errors| {