Add support for configuration via env variables

This commit is contained in:
Peter Cai 2022-11-20 21:33:09 -05:00
parent 66c44df03a
commit 877fae2007
2 changed files with 15 additions and 1 deletions

View File

@ -45,7 +45,12 @@ fn init_indicator(icon_pack: &IconPack) -> AppIndicator {
fn main() {
gtk::init().unwrap();
let mut icon_pack = IconPack::new("./res", "parrot", PackVariant::Dark).unwrap();
let res_dir = std::env::var("PARROTD_RESOURCE_DIR").unwrap_or("./res".to_owned());
let pack_name = std::env::var("PARROTD_ICON_PACK").unwrap_or("parrot".to_owned());
let variant = PackVariant::parse(
&std::env::var("PARROTD_VARIANT").unwrap_or("dark".to_owned())).expect("Invalid variant name");
let mut icon_pack = IconPack::new(res_dir, &pack_name, variant).unwrap();
let mut indicator = init_indicator(&icon_pack);
// Animation task

View File

@ -2,6 +2,7 @@ use crate::*;
use std::path::{Path, PathBuf};
#[allow(dead_code)]
#[derive(Debug)]
pub enum PackVariant {
Light,
Dark,
@ -14,6 +15,14 @@ impl PackVariant {
PackVariant::Dark => "dark",
}
}
pub fn parse(s: &str) -> Option<PackVariant> {
match s {
"light" => Some(PackVariant::Light),
"dark" => Some(PackVariant::Dark),
_ => None
}
}
}
#[allow(unused)]