1
0
mirror of https://github.com/Llewellynvdm/starship.git synced 2024-09-28 21:19:10 +00:00
starship/src/modules/singularity.rs
2020-02-26 11:18:19 -05:00

29 lines
952 B
Rust

use std::env;
use super::{Context, Module, SegmentConfig};
use crate::config::RootModuleConfig;
use crate::configs::singularity::SingularityConfig;
/// Creates a module with the current Singularity image
///
/// Will display the Singularity image if `$SINGULARITY_NAME` is set.
pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
let singularity_env = env::var("SINGULARITY_NAME").unwrap_or_else(|_| "".into());
if singularity_env.trim().is_empty() {
return None;
}
let mut module = context.new_module("singularity");
let config = SingularityConfig::try_load(module.config);
module.get_prefix().set_value(config.label);
module.set_style(config.style);
module.create_segment("symbol", &config.symbol);
let env_var_stacked = format!("{}{}{}", config.prefix, singularity_env, config.suffix);
module.create_segment("singularity", &SegmentConfig::new(&env_var_stacked));
Some(module)
}