2022-10-21 12:12:53 +02:00
|
|
|
use rand::{distributions::Alphanumeric, Rng}; // 0.8
|
2022-10-24 10:23:47 +02:00
|
|
|
use std::env;
|
2022-10-21 12:12:53 +02:00
|
|
|
|
|
|
|
pub fn randstr() -> String {
|
|
|
|
rand::thread_rng()
|
|
|
|
.sample_iter(&Alphanumeric)
|
|
|
|
.take(7)
|
|
|
|
.map(char::from)
|
|
|
|
.collect()
|
|
|
|
}
|
2022-10-24 10:23:47 +02:00
|
|
|
|
|
|
|
// le a variable de entorno UPLOADS para configurar o directorio de almacenamento
|
|
|
|
// por defecto: dir_actual/uploads/
|
|
|
|
pub fn env_uploads_dir() -> String {
|
|
|
|
match env::var_os("UPLOADS") {
|
|
|
|
Some(val) => val.into_string().unwrap(),
|
|
|
|
None => "uploads/".to_string(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// le a variable de entorno PORT para configurar o porto de escoita
|
|
|
|
// por defecto o 3000
|
|
|
|
pub fn env_listen_port() -> u16 {
|
|
|
|
match env::var_os("PORT") {
|
|
|
|
Some(val) => val.into_string().unwrap().parse::<u16>().unwrap(),
|
|
|
|
None => 3000,
|
|
|
|
}
|
|
|
|
}
|
2022-10-24 17:00:07 +02:00
|
|
|
|
2022-10-25 09:23:45 +02:00
|
|
|
// le a variable de entorno RPROXY para indicar si está detráis dun "reverse proxy"
|
|
|
|
// e así mostrar na páxina principal o porto ou non
|
|
|
|
// por defecto: false
|
|
|
|
pub fn env_rproxy() -> bool {
|
|
|
|
match env::var_os("RPROXY") {
|
|
|
|
Some(_) => true,
|
|
|
|
None => false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// le a variable de entorno BASE_URL para configurar a url a mostrar nos enlaces
|
|
|
|
// dependendo de si está detráis dun "reverse proxy" ou non
|
2022-10-24 17:00:07 +02:00
|
|
|
// por defecto: http://localhost:3000
|
|
|
|
pub fn env_base_url() -> String {
|
|
|
|
let port = env_listen_port();
|
|
|
|
|
|
|
|
match env::var_os("BASE_URL") {
|
2022-10-25 09:23:45 +02:00
|
|
|
Some(val) => {
|
|
|
|
if env_rproxy() {
|
|
|
|
format!("{}", val.into_string().unwrap())
|
|
|
|
} else {
|
|
|
|
format!("{}:{}", val.into_string().unwrap(), port)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
None => {
|
|
|
|
// si non se especifica unha BASE_URL enténdese que se está levantando
|
|
|
|
// en local e non influe a variable RPROXY
|
|
|
|
format!("{}:{}", "http://localhost", port)
|
|
|
|
},
|
2022-10-24 17:00:07 +02:00
|
|
|
}
|
|
|
|
}
|