added functionality to load environment variables
This commit is contained in:
parent
4951770a9d
commit
a8c70a2869
@ -1,4 +1,5 @@
|
|||||||
use std::env;
|
use std::env;
|
||||||
|
use std::ops::Deref;
|
||||||
|
|
||||||
use config::File;
|
use config::File;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
@ -22,7 +23,7 @@ impl Configuration {
|
|||||||
// this case is currently untested
|
// this case is currently untested
|
||||||
"windows" => {
|
"windows" => {
|
||||||
location.push(String::from("config.json"));
|
location.push(String::from("config.json"));
|
||||||
location.push(String::from("{:?}/AppData/Roaming/gt/config.json"))
|
location.push(format!("{:?}/AppData/Roaming/gt/config.json", home_dir_env))
|
||||||
},
|
},
|
||||||
// this case is currently untested
|
// this case is currently untested
|
||||||
"macos" => {
|
"macos" => {
|
||||||
@ -49,6 +50,41 @@ impl Configuration {
|
|||||||
|
|
||||||
config
|
config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn load_envs(&mut self) {
|
||||||
|
// get environment variables
|
||||||
|
let username_env = env::var("GT_USERNAME").unwrap_or_else(|_| "".to_string());
|
||||||
|
let password_env = env::var("GT_PASSWORD").unwrap_or_else(|_| "".to_string());
|
||||||
|
let api_token_env = env::var("GT_API_TOKEN").unwrap_or_else(|_| "".to_string());
|
||||||
|
|
||||||
|
// get struct fields
|
||||||
|
let mut user_config = self.username.as_ref().unwrap();
|
||||||
|
let mut password_config = self.password.as_ref().unwrap();
|
||||||
|
let mut api_token_config = self.api_token.as_ref().unwrap();
|
||||||
|
|
||||||
|
// check and see if the env vars are empty
|
||||||
|
// if they are not, put the env vars in place of the config property
|
||||||
|
if username_env != "".to_string() {
|
||||||
|
self.username = Some(username_env);
|
||||||
|
} else {
|
||||||
|
println!("cannot find username env var");
|
||||||
|
}
|
||||||
|
|
||||||
|
if password_env != "".to_string() {
|
||||||
|
password_config = &password_env.deref().to_string();
|
||||||
|
} else {
|
||||||
|
println!("cannot find password env var");
|
||||||
|
}
|
||||||
|
|
||||||
|
if api_token_env != "".to_string() {
|
||||||
|
api_token_config = &api_token_env.deref().to_string();
|
||||||
|
} else {
|
||||||
|
println!("cannot find api token env var");
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("{:?}", &self);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Configuration {
|
impl Default for Configuration {
|
||||||
|
@ -16,7 +16,8 @@ use clap::ArgMatches;
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let matches: ArgMatches = arg::get_args();
|
let matches: ArgMatches = arg::get_args();
|
||||||
let config = crate::config::Configuration::new();
|
let mut config = crate::config::Configuration::new();
|
||||||
|
config.load_envs();
|
||||||
let auth = request::Authentication::new(&config);
|
let auth = request::Authentication::new(&config);
|
||||||
let request = auth.request_chooser(config.clone(), matches);
|
let request = auth.request_chooser(config.clone(), matches);
|
||||||
|
|
||||||
@ -47,11 +48,11 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if repo_matches.is_present("push") {
|
if repo_matches.is_present("push") {
|
||||||
repo.push_to_remote(&request)
|
repo.push_to_remote(&request, &config)
|
||||||
}
|
}
|
||||||
|
|
||||||
if repo_matches.is_present("pull") {
|
if repo_matches.is_present("pull") {
|
||||||
repo.pull_from_remote(&request)
|
repo.pull_from_remote(&request, &config)
|
||||||
}
|
}
|
||||||
|
|
||||||
if repo_matches.is_present("clone") {
|
if repo_matches.is_present("clone") {
|
||||||
|
Loading…
Reference in New Issue
Block a user