feat: add proper env vars for home and the csv
This commit is contained in:
parent
480860ca26
commit
f73a7dfa29
4 changed files with 19 additions and 13 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,14 +1,11 @@
|
||||||
/target
|
/target
|
||||||
|
|
||||||
/.idea
|
/.idea
|
||||||
|
|
||||||
.env
|
.env
|
||||||
|
|
||||||
*.db
|
*.db
|
||||||
|
|
||||||
|
|
||||||
# flakes
|
# flakes
|
||||||
result
|
result
|
||||||
/result
|
/result
|
||||||
|
|
||||||
tmp.*
|
tmp.*
|
||||||
|
*.csv
|
|
@ -51,7 +51,9 @@
|
||||||
LDAP_ADMIN = cfg.ldap.admin;
|
LDAP_ADMIN = cfg.ldap.admin;
|
||||||
|
|
||||||
# basic dserver stuff
|
# basic dserver stuff
|
||||||
DATABASE = "${cfg.home}/database.db";
|
HOME = cfg.home;
|
||||||
|
DATABASE = "database.db";
|
||||||
|
CSV = "wolves.csv";
|
||||||
HOST_PORT = cfg.host_port;
|
HOST_PORT = cfg.host_port;
|
||||||
|
|
||||||
# special categories of users
|
# special categories of users
|
||||||
|
|
|
@ -35,7 +35,6 @@ async fn update_users(config: &Config) -> tide::Result<()> {
|
||||||
for every valid user in wolves match to ldap
|
for every valid user in wolves match to ldap
|
||||||
add to users
|
add to users
|
||||||
*/
|
*/
|
||||||
println!("{:#?}", users_tmp);
|
|
||||||
// pull from wolves csv
|
// pull from wolves csv
|
||||||
for user in from_csv(config).await.unwrap_or_default() {
|
for user in from_csv(config).await.unwrap_or_default() {
|
||||||
users_tmp.insert(user);
|
users_tmp.insert(user);
|
||||||
|
@ -48,8 +47,6 @@ async fn update_users(config: &Config) -> tide::Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("{:#?}", users_tmp);
|
|
||||||
|
|
||||||
// easier to work with Strings above but easier to work with &str below
|
// easier to work with Strings above but easier to work with &str below
|
||||||
let users: Vec<&str> = users_tmp.iter().map(|s| &**s).collect();
|
let users: Vec<&str> = users_tmp.iter().map(|s| &**s).collect();
|
||||||
|
|
||||||
|
@ -184,7 +181,7 @@ async fn from_csv(config: &Config) -> Result<HashSet<String>, Box<dyn Error>> {
|
||||||
let mut uids = HashSet::new();
|
let mut uids = HashSet::new();
|
||||||
|
|
||||||
let (uid_idstudent, uid_email) = ldap_get_accounts(config).await?;
|
let (uid_idstudent, uid_email) = ldap_get_accounts(config).await?;
|
||||||
let records = read_csv()?;
|
let records = read_csv(config)?;
|
||||||
|
|
||||||
let now = Utc::now();
|
let now = Utc::now();
|
||||||
let today = format!("{}-{:02}-{:02}", now.year(), now.month(), now.day());
|
let today = format!("{}-{:02}-{:02}", now.year(), now.month(), now.day());
|
||||||
|
@ -218,10 +215,10 @@ struct Record {
|
||||||
expiry: String,
|
expiry: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_csv() -> Result<Vec<Record>, Box<dyn Error>> {
|
fn read_csv(config: &Config) -> Result<Vec<Record>, Box<dyn Error>> {
|
||||||
let mut records: Vec<Record> = vec![];
|
let mut records: Vec<Record> = vec![];
|
||||||
|
|
||||||
if let Ok(mut rdr) = csv::Reader::from_path("tmp.csv") {
|
if let Ok(mut rdr) = csv::Reader::from_path(format!("{}/{}", &config.home, &config.csv)) {
|
||||||
for result in rdr.deserialize() {
|
for result in rdr.deserialize() {
|
||||||
// Notice that we need to provide a type hint for automatic
|
// Notice that we need to provide a type hint for automatic
|
||||||
// deserialization.
|
// deserialization.
|
||||||
|
|
12
src/lib.rs
12
src/lib.rs
|
@ -31,7 +31,7 @@ pub struct Accounts {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn db_init(config: &Config) -> Result<Pool<Sqlite>, Error> {
|
pub async fn db_init(config: &Config) -> Result<Pool<Sqlite>, Error> {
|
||||||
let database = &config.database;
|
let database = format!("{}/{}", &config.home, &config.database);
|
||||||
let pool = SqlitePoolOptions::new()
|
let pool = SqlitePoolOptions::new()
|
||||||
.max_connections(5)
|
.max_connections(5)
|
||||||
.connect_with(SqliteConnectOptions::from_str(&format!("sqlite://{}", database))?.create_if_missing(true))
|
.connect_with(SqliteConnectOptions::from_str(&format!("sqlite://{}", database))?.create_if_missing(true))
|
||||||
|
@ -91,7 +91,9 @@ pub struct Config {
|
||||||
pub ldap_host: String,
|
pub ldap_host: String,
|
||||||
pub ldap_admin: String,
|
pub ldap_admin: String,
|
||||||
pub ldap_admin_pw: String,
|
pub ldap_admin_pw: String,
|
||||||
|
pub home: String,
|
||||||
pub database: String,
|
pub database: String,
|
||||||
|
pub csv: String,
|
||||||
pub host_port: String,
|
pub host_port: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +105,9 @@ pub fn get_config() -> Config {
|
||||||
ldap_host: "".to_string(),
|
ldap_host: "".to_string(),
|
||||||
ldap_admin: "".to_string(),
|
ldap_admin: "".to_string(),
|
||||||
ldap_admin_pw: "".to_string(),
|
ldap_admin_pw: "".to_string(),
|
||||||
|
home: ".".to_string(),
|
||||||
database: "database.db".to_string(),
|
database: "database.db".to_string(),
|
||||||
|
csv: "wolves.csv".to_string(),
|
||||||
host_port: "127.0.0.1:8087".to_string(),
|
host_port: "127.0.0.1:8087".to_string(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -116,9 +120,15 @@ pub fn get_config() -> Config {
|
||||||
if let Ok(x) = env::var("LDAP_ADMIN_PW") {
|
if let Ok(x) = env::var("LDAP_ADMIN_PW") {
|
||||||
config.ldap_admin_pw = x.trim().to_string();
|
config.ldap_admin_pw = x.trim().to_string();
|
||||||
}
|
}
|
||||||
|
if let Ok(x) = env::var("HOME") {
|
||||||
|
config.home = x.trim().to_string();
|
||||||
|
}
|
||||||
if let Ok(x) = env::var("DATABASE") {
|
if let Ok(x) = env::var("DATABASE") {
|
||||||
config.database = x.trim().to_string();
|
config.database = x.trim().to_string();
|
||||||
}
|
}
|
||||||
|
if let Ok(x) = env::var("CSV") {
|
||||||
|
config.csv = x.trim().to_string();
|
||||||
|
}
|
||||||
if let Ok(x) = env::var("HOST_PORT") {
|
if let Ok(x) = env::var("HOST_PORT") {
|
||||||
config.host_port = x.trim().to_string();
|
config.host_port = x.trim().to_string();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue