summaryrefslogtreecommitdiffstats
path: root/src/modules/aws.rs
blob: 8e6fd50f92fb09810d649128bc0c04249a859542 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::env;

use super::{Context, Module, RootModuleConfig};

use crate::configs::aws::AwsConfig;

pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
    const AWS_PREFIX: &str = "on ";

    let aws_profile = env::var("AWS_PROFILE").ok()?;
    if aws_profile.is_empty() {
        return None;
    }

    let mut module = context.new_module("aws");
    let config: AwsConfig = AwsConfig::try_load(module.config);

    module.set_style(config.style);

    module.get_prefix().set_value(AWS_PREFIX);

    module.create_segment("symbol", &config.symbol);
    module.create_segment("profile", &config.profile.with_value(&aws_profile));

    Some(module)
}