glory_cli/config/
tailwind.rs1use camino::Utf8PathBuf;
2
3use super::ProjectConfig;
4use anyhow::{bail, Result};
5
6#[derive(Clone, Debug)]
7pub struct TailwindConfig {
8 pub input_file: Utf8PathBuf,
9 pub output_file: Utf8PathBuf,
10 pub config_file: Utf8PathBuf,
11}
12
13impl TailwindConfig {
14 pub fn new(conf: &ProjectConfig) -> Result<Option<Self>> {
15 let input_file = if let Some(input_file) = conf.tailwind_input_file.clone() {
16 conf.config_dir.join(input_file)
17 } else {
18 if conf.tailwind_config_file.is_some() {
19 bail!("The Cargo.toml `tailwind-input-file` is required when using `tailwind-config-file`]");
20 }
21 return Ok(None);
22 };
23
24 let mut output_file = Utf8PathBuf::new();
25 output_file.push("target/front/");
26 output_file.push(&input_file);
27
28 let config_file = conf.config_dir.join(
29 conf.tailwind_config_file
30 .clone()
31 .unwrap_or_else(|| Utf8PathBuf::from("tailwind.config.js")),
32 );
33
34 Ok(Some(Self {
35 input_file,
36 output_file,
37 config_file,
38 }))
39 }
40}