diff --git a/nix/packages/by-name/typst-bot/package.nix b/nix/packages/by-name/typst-bot/package.nix index 2f8920a0..4d831097 100644 --- a/nix/packages/by-name/typst-bot/package.nix +++ b/nix/packages/by-name/typst-bot/package.nix @@ -1,11 +1,16 @@ { - rustPlatform, - fetchFromGitHub, lib, + rustPlatform, + runCommand, + fetchFromGitHub, }: let rev = "6be5470fcb19e857f76ede9a7f0c96cac63e3abc"; in - rustPlatform.buildRustPackage (finalAttrs: { + rustPlatform.buildRustPackage (finalAttrs: let + fontDrv = runCommand "typst-bot-font" {} '' + cp -r ${finalAttrs.src}/fonts $out + ''; + in { pname = "typst-bot"; version = lib.substring 0 8 rev; @@ -21,11 +26,10 @@ in echo 'fn main() { println!("cargo:rustc-env=BUILD_SHA=${rev}"); }' > crates/bot/build.rs # Patch the fonts with src - # FIXME: is this the right way to patch - substituteInPlace crates/worker/src/sandbox.rs --replace-fail 'read_dir("fonts")' 'read_dir("${finalAttrs.src}/fonts")' + substituteInPlace crates/worker/src/sandbox.rs --replace-fail 'read_dir("fonts")' 'read_dir("${fontDrv}")' # Patch the command calling the worker by name. - substituteInPlace crates/bot/src/worker.rs --replace-fail 'Command::new("./worker")' 'Command::new("worker")' + substituteInPlace crates/bot/src/worker.rs --replace-fail 'Command::new("./worker")' 'Command::new("${placeholder "out"}/bin/worker")' ''; cargoBuildFlags = ["--workspace"];