dioxus_tailwindcss/
build.rs

1pub use dioxus_class::build::*;
2
3use std::path::Path;
4use std::process::Command;
5
6pub fn tailwindcss<P: AsRef<Path> + Clone>(
7    path: P,
8    input: &str,
9    output: &str
10) -> Result<(), Box<dyn std::error::Error>> {
11    let mut cmd = Command::new("tailwindcss");
12    cmd.current_dir(path);
13    let result = cmd
14        .arg("-i").arg(input)
15        .arg("-o").arg(output).output()?;
16    if !result.status.success() {
17        Err(format!("tailwindcss failed: {} {} -> {:?}", input, output, result).into())
18    } else {
19        println!("cargo:warning=dioxus-tailwind::build::tailwindcss: {} {}", input, output);
20        let stdout = String::from_utf8(result.stdout)?;
21        for line in stdout.lines() {
22            println!("cargo:warning=    {:#?}", line);
23        }
24        Ok(())
25    }
26}
27
28pub fn npx_tailwindcss<P: AsRef<Path> + Clone>(
29    path: P,
30    input: &str,
31    output: &str
32) -> Result<(), Box<dyn std::error::Error>> {
33    let mut cmd = Command::new("npx");
34    cmd.current_dir(path);
35    let result = cmd
36        .arg("tailwindcss")
37        .arg("-i").arg(input)
38        .arg("-o").arg(output).output()?;
39    if !result.status.success() {
40        Err(format!("tailwindcss failed: {} {} -> {:?}", input, output, result).into())
41    } else {
42        println!("cargo:warning=dioxus-tailwind::build::npx_tailwindcss: {} {}", input, output);
43        let stdout = String::from_utf8(result.stdout)?;
44        for line in stdout.lines() {
45            println!("cargo:warning=    {:#?}", line);
46        }
47        Ok(())
48    }
49}