mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2026-08-19 01:14:43 -05:00
44 lines
1.3 KiB
Rust
44 lines
1.3 KiB
Rust
use std::env;
|
|
use std::fs;
|
|
use std::path::{Path, PathBuf};
|
|
|
|
fn main() {
|
|
generate_combined_css();
|
|
}
|
|
|
|
fn generate_combined_css() {
|
|
let out_dir = env::var_os("OUT_DIR").unwrap();
|
|
let dest_path = Path::new(&out_dir).join("combined.css");
|
|
|
|
let mut css_files = Vec::new();
|
|
collect_css_files(Path::new("src"), &mut css_files);
|
|
|
|
// Sort files to ensure deterministic output
|
|
css_files.sort();
|
|
|
|
let mut combined_css = String::new();
|
|
for file in css_files {
|
|
let content = fs::read_to_string(&file).expect("Could not read CSS file");
|
|
combined_css.push_str(&format!("/* Source: {} */\n", file.display()));
|
|
combined_css.push_str(&content);
|
|
combined_css.push('\n');
|
|
|
|
println!("cargo:rerun-if-changed={}", file.display());
|
|
}
|
|
|
|
fs::write(dest_path, combined_css).expect("Could not write combined CSS file");
|
|
}
|
|
|
|
fn collect_css_files(dir: &Path, files: &mut Vec<PathBuf>) {
|
|
if let Ok(entries) = fs::read_dir(dir) {
|
|
for entry in entries.flatten() {
|
|
let path = entry.path();
|
|
if path.is_dir() {
|
|
collect_css_files(&path, files);
|
|
} else if path.extension().and_then(|s| s.to_str()) == Some("css") {
|
|
files.push(path);
|
|
}
|
|
}
|
|
}
|
|
}
|