From a07ae193b5b2645267b98fc35c0cdcec86f84256 Mon Sep 17 00:00:00 2001 From: Valerie Date: Mon, 10 Jun 2024 12:02:02 -0400 Subject: [PATCH] moved environment variable code to a new module --- src/command/share.rs | 10 +++++++--- src/env.rs | 12 +++++++----- src/main.rs | 1 + src/util.rs | 12 +++++++----- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/command/share.rs b/src/command/share.rs index c9c28d9..43fea42 100644 --- a/src/command/share.rs +++ b/src/command/share.rs @@ -1,6 +1,5 @@ //! globally available tmux commands. use std::{ - env::var, ffi::OsString, process::exit }; @@ -12,7 +11,12 @@ use tmux_interface::{ commands }; -use crate::{ error, flag, util }; +use crate::{ + env::{ self, env_var }, + error, + flag, + util +}; pub fn attach(pargs: &mut Arguments) { // must be run from terminal @@ -122,7 +126,7 @@ pub fn list() { } // get attached session symbol - let attach_symbol = var("REMUX_ATTACH_SYMBOL").unwrap_or("*".to_string()); + let attach_symbol = env_var(env::ATTACH_SYMBOL); // pretty print session list println!("sessions:"); diff --git a/src/env.rs b/src/env.rs index 4c828bc..b5fd791 100644 --- a/src/env.rs +++ b/src/env.rs @@ -1,10 +1,12 @@ -use std::env::{ set_var, var }; +use std::env::var; -pub type ENV_VAR = (&'static str, &'static str); +pub type EnvVar = (&'static str, &'static str); -pub static ATTACH_SYMBOL: ENV_VAR = ("ATTACH_SYMBOL", "*"); +pub static ATTACH_SYMBOL: EnvVar = ("ATTACH_SYMBOL", "*"); -pub fn env_var(var: ENV_VAR) -> String { - var(var.0).unwrap_or(var.1.to_string()) +pub fn env_var(envvar: EnvVar) -> String { + var(envvar.0).unwrap_or(envvar.1.to_string()) } +pub fn tmux() -> bool { !var("TMUX").unwrap_or("".to_string()).is_empty() } + diff --git a/src/main.rs b/src/main.rs index d4883f7..a1c9cf1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,7 @@ use std::env::{ set_var, var }; use pico_args::Arguments; mod command; +mod env; mod error; mod flag; mod help; diff --git a/src/util.rs b/src/util.rs index d37dd74..fd6e953 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,5 +1,5 @@ use std::{ - env::{ current_dir, var }, + env::current_dir, io::{ stdout, IsTerminal }, path::PathBuf, process::exit @@ -12,7 +12,10 @@ use tmux_interface::{ variables::session::SessionsCtl }; -use crate::error; +use crate::{ + env, + error +}; /// return a Vec of all sessions or None pub fn get_sessions() -> Option> { @@ -24,10 +27,9 @@ pub fn get_sessions() -> Option> { /// show the tmux nest text if env var is not unset pub fn prevent_nest() { - let tmux = var("TMUX").ok(); - if tmux.is_some() && tmux.unwrap() != "" { + if env::tmux() { println!("Sessions should be nested with care; unset TMUX or use the '-n' flag to allow."); - exit(1); + exit(6); } }