use crate::{NessusError, Result};
use dotenvy::dotenv;
use std::env;
#[derive(Debug, Clone)]
pub struct NessusConfig {
pub host: String,
pub username: String,
pub password: String,
}
impl NessusConfig {
pub fn from_env() -> Result<Self> {
dotenv().ok();
let host = env::var("NESSUS_HOST")
.map_err(|_| NessusError::Config("Missing NESSUS_HOST".into()))?;
let username = env::var("NESSUS_USERNAME")
.map_err(|_| NessusError::Config("Missing NESSUS_USERNAME".into()))?;
let password = env::var("NESSUS_PASSWORD")
.map_err(|_| NessusError::Config("Missing NESSUS_PASSWORD".into()))?;
Ok(Self {
host,
username,
password,
})
}
pub fn default_scan_ids_from_env() -> Vec<u32> {
dotenv().ok();
let ids = env::var("DEFAULT_SCAN_IDS").unwrap_or_default();
ids.split(',')
.filter_map(|s| s.trim().parse::<u32>().ok())
.collect()
}
}