moved environment variable code to a new module

This commit is contained in:
Valerie Wolfe 2024-03-08 21:27:41 -05:00
parent 71b33ca274
commit 708c2334e2
4 changed files with 22 additions and 13 deletions

View file

@ -1,6 +1,5 @@
//! globally available tmux commands. //! globally available tmux commands.
use std::{ use std::{
env::var,
ffi::OsString, ffi::OsString,
process::exit process::exit
}; };
@ -12,7 +11,12 @@ use tmux_interface::{
commands commands
}; };
use crate::{ error, flag, util }; use crate::{
env::{ self, env_var },
error,
flag,
util
};
pub fn attach(pargs: &mut Arguments) { pub fn attach(pargs: &mut Arguments) {
// don't allow unflagged nests // don't allow unflagged nests
@ -119,7 +123,7 @@ pub fn list() {
} }
// get attached session symbol // 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 // pretty print session list
println!("sessions:"); println!("sessions:");

View file

@ -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 { pub fn env_var(envvar: EnvVar) -> String {
var(var.0).unwrap_or(var.1.to_string()) var(envvar.0).unwrap_or(envvar.1.to_string())
} }
pub fn tmux() -> bool { !var("TMUX").unwrap_or("".to_string()).is_empty() }

View file

@ -6,6 +6,7 @@ use std::{
use pico_args::Arguments; use pico_args::Arguments;
mod command; mod command;
mod env;
mod error; mod error;
mod flag; mod flag;
mod help; mod help;

View file

@ -1,5 +1,5 @@
use std::{ use std::{
env::{ current_dir, var }, env::current_dir,
path::PathBuf, path::PathBuf,
process::exit process::exit
}; };
@ -11,7 +11,10 @@ use tmux_interface::{
variables::session::SessionsCtl variables::session::SessionsCtl
}; };
use crate::error; use crate::{
env,
error
};
/// return a Vec of all sessions or None /// return a Vec of all sessions or None
pub fn get_sessions() -> Option<Vec<Session>> { pub fn get_sessions() -> Option<Vec<Session>> {
@ -23,10 +26,9 @@ pub fn get_sessions() -> Option<Vec<Session>> {
/// show the tmux nest text if env var is not unset /// show the tmux nest text if env var is not unset
pub fn prevent_nest() { pub fn prevent_nest() {
let tmux = var("TMUX").ok(); if env::tmux() {
if tmux.is_some() && tmux.unwrap() != "" {
println!("Sessions should be nested with care; unset TMUX or use the '-n' flag to allow."); println!("Sessions should be nested with care; unset TMUX or use the '-n' flag to allow.");
exit(1); exit(6);
} }
} }