glory_cli/config/
tailwind.rs

1use 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}