nexgenomics 0.2.4

The official Rust crate for NexGenomics
Documentation


// src/utils.rs


use std::env;
use configparser::ini::Ini;
use dirs_next::home_dir;

const INIFILE:&str = ".nexgenomicsrc";


#[allow(dead_code)]
pub fn get_api_auth_token() -> Option<String> {
    let envstring = "API_AUTH_TOKEN";
    //let inifile = ".nexgenomicsrc";
    let section = "nexgenomics";
    let key = "api_auth_token";

    // Check env var first
    if let Ok(env_val) = env::var(envstring) {
        return Some(env_val);
    }

    // now look in an ini file
    let fname = home_dir().map(|mut path| {
        path.push (INIFILE);
        path
    });

    let mut config = Ini::new();
    let _ = config.load(fname.unwrap());
    match config.get(section,key) {
        Some(a) => Some(a),
        None => panic!("No API auth token")
    }
}



#[allow(dead_code)]
pub fn get_api_url_stem() -> Option<String> {
    let envstring = "API_URL_STEM";
    let section = "nexgenomics";
    let key = "api_url_stem";

    // Check env var first
    if let Ok(env_val) = env::var(envstring) {
        return Some(env_val);
    }

    // now look in an ini file
    let fname = home_dir().map(|mut path| {
        path.push (INIFILE);
        path
    });

    let mut config = Ini::new();
    let _ = config.load(fname.unwrap());
    match config.get(section,key) {
        Some(a) => Some(a),
        None => panic!("No API url stem")
    }
}