socktop-webterm/build.rs

55 lines
1.5 KiB
Rust
Raw Normal View History

use std::path::Path;
fn main() {
// Verify that required directories exist at build time
let required_dirs = vec!["static", "templates", "node_modules"];
let mut missing_dirs = Vec::new();
for dir in &required_dirs {
if !Path::new(dir).exists() {
missing_dirs.push(*dir);
}
}
if !missing_dirs.is_empty() {
println!("cargo:warning=Missing required directories:");
for dir in &missing_dirs {
println!("cargo:warning= - {}", dir);
}
if missing_dirs.contains(&"node_modules") {
println!("cargo:warning=Run 'npm install' to install frontend dependencies");
}
}
// Verify critical files
let required_files = vec![
"templates/term.html",
"static/terminal.js",
"static/terminado-addon.js",
"static/styles.css",
];
let mut missing_files = Vec::new();
for file in &required_files {
if !Path::new(file).exists() {
missing_files.push(*file);
}
}
if !missing_files.is_empty() {
println!("cargo:warning=Missing required files:");
for file in &missing_files {
println!("cargo:warning= - {}", file);
}
}
// Tell cargo to rerun if these directories change
println!("cargo:rerun-if-changed=static/");
println!("cargo:rerun-if-changed=templates/");
println!("cargo:rerun-if-changed=package.json");
println!("cargo:rerun-if-changed=package-lock.json");
}