From bd9cd0f28b50060226217210dd6d26c04b1ffd99 Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Wed, 10 Jul 2024 22:58:58 +0200 Subject: [PATCH] build: manage all dependencies with npm now --- .gitignore | 1 + build.rs | 21 ++++++++++++++------- static_packages/brass.jpeg | Bin 0 -> 23328 bytes static_packages/package-lock.json | 18 +++++++++++++++++- static_packages/package.json | 4 +++- 5 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 static_packages/brass.jpeg diff --git a/.gitignore b/.gitignore index 61e2826a..14388e6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target *.db* /static_packages/node_modules +/static_packages/dist diff --git a/build.rs b/build.rs index 66111975..b2fd69f5 100644 --- a/build.rs +++ b/build.rs @@ -1,13 +1,20 @@ -use static_files::NpmBuild; -use std::path::Path; +use static_files::{resource_dir, NpmBuild}; +use std::{fs::{self, copy}, path::Path}; fn main() -> std::io::Result<()> { NpmBuild::new("./static_packages") - .install()? .change_detection() - .to_resource_dir() - .with_filter(|x: &Path| x.ends_with("feather-sprite.svg")) - .build()?; + .install()?; - Ok(()) + if fs::metadata(Path::new("./static_packages/dist")).is_err() { + fs::create_dir(Path::new("./static_packages/dist"))?; + } + + copy(Path::new("./static_packages/node_modules/feather-icons/dist/feather-sprite.svg"), Path::new("./static_packages/dist/feather-sprite.svg"))?; + copy(Path::new("./static_packages/node_modules/bulma/css/bulma.min.css"), Path::new("./static_packages/dist/bulma.min.css"))?; + copy(Path::new("./static_packages/node_modules/htmx.org/dist/htmx.min.js"), Path::new("./static_packages/dist/htmx.min.js"))?; + copy(Path::new("./static_packages/node_modules/htmx.org/dist/ext/response-targets.js"), Path::new("./static_packages/dist/response-targets.js"))?; + copy(Path::new("./static_packages/brass.jpeg"), Path::new("./static_packages/dist/brass.jpeg"))?; + + resource_dir("./static_packages/dist").build() } diff --git a/static_packages/brass.jpeg b/static_packages/brass.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..791ffb2ae8f0ecf95cadf128b5002f439dd14c9a GIT binary patch literal 23328 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 x1GVajjq{4wJt;HS6UF?o3