From 46bf389dc349cda2771358eff51e18c01c52d0df Mon Sep 17 00:00:00 2001 From: Bauke Date: Tue, 10 Jan 2023 16:17:19 +0100 Subject: [PATCH] Lowercase video directory names and check total count. Netlify makes paths case-insensitive after deploying so lowercase the video IDs and then add a check for total count so there isn't a collision. --- source/video/mod.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/source/video/mod.rs b/source/video/mod.rs index 772130f..388227e 100644 --- a/source/video/mod.rs +++ b/source/video/mod.rs @@ -1,6 +1,10 @@ use std::{fs, path::Path}; -use {askama::Template, color_eyre::Result, serde::Deserialize}; +use { + askama::Template, + color_eyre::{eyre::eyre, Result}, + serde::Deserialize, +}; mod filters; @@ -55,8 +59,11 @@ pub fn write_all(public_dir: &Path) -> Result<()> { data }; + let video_dir = public_dir.join("v"); + let expected_video_count = video_datas.len(); + for (video_data, markdown) in video_datas { - let video_dir = public_dir.join("v").join(&video_data.id); + let video_dir = video_dir.join(&video_data.id.to_lowercase()); fs::create_dir_all(&video_dir)?; let template = VideoTemplate { @@ -75,5 +82,14 @@ pub fn write_all(public_dir: &Path) -> Result<()> { )?; } + let actual_video_count = fs::read_dir(video_dir)?.count(); + if expected_video_count != actual_video_count { + return Err(eyre!( + "Expected {} videos, found {}", + expected_video_count, + actual_video_count + )); + } + Ok(()) }