From 2da7939965fd0f748bd70b06eb7b3bf35fa738b5 Mon Sep 17 00:00:00 2001 From: Noratrieb <48135649+Noratrieb@users.noreply.github.com> Date: Fri, 2 Aug 2024 17:24:01 +0200 Subject: [PATCH] add cursed hacks --- builder/src/main.rs | 2 +- builder/src/submodule.rs | 11 +++++++++-- default.nix | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/builder/src/main.rs b/builder/src/main.rs index 3693d7a..a544c24 100644 --- a/builder/src/main.rs +++ b/builder/src/main.rs @@ -169,7 +169,7 @@ fn build(rng: &mut rand::rngs::StdRng, root: &Path) -> Result<()> { let sub_config = submodule::Submodules::parse(&sub_config).wrap_err("invalid submodules.toml")?; let submodules_path = root.join("submodules"); - submodule::sync(&submodules_path, &sub_config).wrap_err("syncing subtrees")?; + submodule::sync(&submodules_path, &sub_config).wrap_err("syncing submodules")?; let dist_path = root.join("dist"); build::assemble_website( diff --git a/builder/src/submodule.rs b/builder/src/submodule.rs index a578b55..14fcc23 100644 --- a/builder/src/submodule.rs +++ b/builder/src/submodule.rs @@ -28,7 +28,7 @@ use color_eyre::{ Result, }; -use crate::utils; +use crate::utils::{self, cp_r}; pub struct Submodules { configs: Vec, @@ -86,7 +86,14 @@ pub fn sync(path: &Path, config: &Submodules) -> color_eyre::Result<()> { let _span = span.enter(); let sub_path = path.join(name); - if !sub_path.exists() { + + if let Ok(path) = std::env::var(format!("SUBMODULE_DIR_{}", name.to_uppercase())) { + info!(?name, ?path, "Taking submodule from hardcoded path"); + cp_r(Path::new(&path), &sub_path).wrap_err("copying path from SUBMODULE_DIR")?; + continue; + } + + if !sub_path.exists() { info!(?name, ?url, "Cloning"); let mut cmd = process::Command::new("git"); cmd.args(["clone", url, sub_path.to_str().unwrap()]); diff --git a/default.nix b/default.nix index b0c2de7..80e7c48 100644 --- a/default.nix +++ b/default.nix @@ -1,4 +1,4 @@ -{ pkgs ? import { }, ... }: +{ pkgs ? import { }, slides ? null, blog ? null, ... }: let generator = import ./builder { inherit pkgs; }; in @@ -8,6 +8,9 @@ pkgs.stdenv.mkDerivation { src = ./.; unpackSrc = false; + SUBMODULE_DIR_SLIDES = slides; + SUBMODULE_DIR_BLOG = blog; + WEBSITE_RNG_SEED = "99"; nativeBuildInputs = with pkgs; [ git hugo ];