feat: initial stardust themes!!

This commit is contained in:
Nova
2023-10-17 07:12:06 -04:00
parent 3527ce2507
commit b0f9bf24cf

View File

@@ -2,6 +2,10 @@ use color_eyre::eyre::eyre;
use serde::{de::Visitor, Deserialize}; use serde::{de::Visitor, Deserialize};
use std::{ffi::OsStr, path::PathBuf}; use std::{ffi::OsStr, path::PathBuf};
lazy_static::lazy_static! {
static ref THEMES: Vec<PathBuf> = std::env::var("STARDUST_THEMES").map(|s| s.split(":").map(PathBuf::from).collect()).unwrap_or_default();
}
#[derive(Debug)] #[derive(Debug)]
pub enum ResourceID { pub enum ResourceID {
File(PathBuf), File(PathBuf),
@@ -15,8 +19,9 @@ impl ResourceID {
.then_some(file.clone()), .then_some(file.clone()),
ResourceID::Namespaced { namespace, path } => { ResourceID::Namespaced { namespace, path } => {
let file_name = path.file_name()?; let file_name = path.file_name()?;
prefixes THEMES
.iter() .iter()
.chain(prefixes.iter())
.filter_map(|prefix| { .filter_map(|prefix| {
let prefixed_path = prefix.clone().join(namespace).join(path); let prefixed_path = prefix.clone().join(namespace).join(path);
let parent = prefixed_path.parent()?; let parent = prefixed_path.parent()?;