Files
galaxy/crates/command-signatures-v2/build.rs
T

52 lines
1.7 KiB
Rust

use command::blocking::Command;
use std::path::Path;
use anyhow::anyhow;
fn main() -> anyhow::Result<()> {
println!("cargo:rerun-if-changed=js/src");
println!("cargo:rerun-if-changed=js/build");
println!("cargo:rerun-if-changed=js/package.json");
println!("cargo:rerun-if-changed=js/tsconfig.json");
if let Err(e) = build_command_signatures() {
if !Path::new(format!("{}/js/build", env!("CARGO_MANIFEST_DIR")).as_str()).exists() {
panic!(
r#"Failed to build command signatures JS: {e:?}.
Most likely, this is fixed by:
1) Ensuring you have an up-to-date Node version; 18.14.1 (required for warp-server development) should suffice.
2) Running `corepack enable` (this can be done in any directory).
3) Removing a conflicting yarn installed by brew by running:
brew uninstall yarn
If you continue to encounter issues, ensure you don't have conflicting Node installations, one of which might not be a sufficiently recent version.
"#
)
} else {
println!("cargo:warning=Failed to build command signatures JS. Proceeding with stale command signatures!");
}
}
Ok(())
}
fn build_command_signatures() -> anyhow::Result<()> {
match Command::new("yarn")
.arg("build")
.current_dir(format!("{}/js", env!("CARGO_MANIFEST_DIR")))
.output()
{
Ok(output) => {
if output.status.success() {
Ok(())
} else {
Err(anyhow!(
"Failed to build Command Signatures JS with output: {:?}",
output
))
}
}
Err(e) => Err(anyhow::Error::from(e)),
}
}