From 9d53bdba0ccefeda9e7c9f5b0b3fdd16a8d726e7 Mon Sep 17 00:00:00 2001 From: Ahurac Date: Wed, 17 Apr 2024 16:08:29 +0200 Subject: [PATCH] =?UTF-8?q?variables=20:=20possibilit=C3=A9=20de=20r=C3=A9?= =?UTF-8?q?cup=C3=A9rer=20les=20arguments=20de=20la=20ligne=20de=20command?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/variables.rs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/variables.rs b/src/variables.rs index 61b4be9..17dced7 100644 --- a/src/variables.rs +++ b/src/variables.rs @@ -1,5 +1,5 @@ use std::collections::HashMap; -use std::env; +use std::env::{self, args}; pub struct Variables { variables: HashMap, @@ -13,21 +13,21 @@ impl Variables { } pub fn get(&self, key: &str) -> String { - let var_from_map = self.variables.get(key); + let arg_index = String::from(key).parse::(); - let value: String; - if var_from_map.is_none() { - let var_in_env = env::var(key); - - value = match var_in_env { - Ok(value) => value, - Err(_e) => String::new(), - } - } else { - value = var_from_map.unwrap().clone(); + match arg_index { + Ok(index) => match env::args().nth(index) { + Some(value) => value, + None => String::new(), + }, + Err(_e) => match self.variables.get(key) { + Some(value) => value.clone(), + None => match env::var(key) { + Ok(value) => value, + Err(_e) => String::new(), + }, + }, } - - value } pub fn unset(&mut self, key: &str) {