glory_cli/config/
style.rs1use super::{ProjectConfig, TailwindConfig};
2use crate::service::site::{SiteFile, SourcedSiteFile};
3use anyhow::Result;
4
5#[derive(Debug, Clone)]
6pub struct StyleConfig {
7 pub file: Option<SourcedSiteFile>,
8 pub browser_query: String,
9 pub tailwind: Option<TailwindConfig>,
10 pub site_file: SiteFile,
11}
12
13impl StyleConfig {
14 pub fn new(config: &ProjectConfig) -> Result<Self> {
15 let site_rel = config.site_pkg_dir.join(&config.output_name).with_extension("css");
16
17 let site_file = SiteFile {
18 dest: config.site_root.join(&site_rel),
19 site: site_rel,
20 };
21 let style_file = config.style_file.as_ref().map(|file| {
22 let source = config.config_dir.join(file);
24 let site = config.site_pkg_dir.join(&config.output_name).with_extension("css");
25 let dest = config.site_root.join(&site);
26 SourcedSiteFile { source, dest, site }
27 });
28 Ok(Self {
29 file: style_file,
30 browser_query: config.browser_query.clone(),
31 tailwind: TailwindConfig::new(config)?,
32 site_file,
33 })
34 }
35}