diff --git a/src/gather.rs b/src/gather.rs index 380e263..1eae826 100644 --- a/src/gather.rs +++ b/src/gather.rs @@ -53,7 +53,7 @@ pub fn gather_sessions(user: &User) -> Vec { false => vec![Session { name: String::from("Shell"), generation: user.shell.to_str().unwrap().to_owned(), - env: vec![], + env: vec![String::from("NIXGREETY_SIMPLE=1")], }], } } diff --git a/src/session.rs b/src/session.rs index d603e10..af8477e 100644 --- a/src/session.rs +++ b/src/session.rs @@ -9,6 +9,15 @@ use std::{ use crate::fs::resolve_link; pub fn handle_session() -> io::Result<()> { + match env::var("NIXGREETY_SIMPLE") { + Ok(_) => handle_simple_session(), + Err(_) => handle_hm_session(), + } + + Ok(()) +} + +fn handle_hm_session() { println!(">>> Activating environment <<<"); let generation = env::var("NIXGREETY_GENERATION").unwrap(); Command::new(format!("{}/activate", generation)) @@ -48,6 +57,11 @@ pub fn handle_session() -> io::Result<()> { Command::new(format!("{}/activate", generation.display())) .status() .unwrap(); - - Ok(()) +} + +fn handle_simple_session() { + let generation = env::var("NIXGREETY_GENERATION").unwrap(); + Command::new(&generation) + .status() + .expect("Failed to create session"); }