From 0082d1feb5ab64768732d51d5efb0c720247b958 Mon Sep 17 00:00:00 2001 From: mykola2312 Date: Fri, 8 Mar 2024 05:24:39 +0200 Subject: [PATCH] make utility function to parse env --- src/bot/bot.rs | 27 +++++++-------------------- src/util.rs | 29 +++++++++++++---------------- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/src/bot/bot.rs b/src/bot/bot.rs index a99cd97..88d90aa 100644 --- a/src/bot/bot.rs +++ b/src/bot/bot.rs @@ -1,9 +1,6 @@ use anyhow; use rust_i18n::t; -use std::env; -use std::fmt; use std::str; -use std::str::FromStr; use std::time::Duration; use teloxide::dispatching::{dialogue, dialogue::InMemStorage, UpdateHandler}; use teloxide::types::{Me, MessageKind, MessageNewChatMembers, UpdateKind}; @@ -13,30 +10,20 @@ use tracing::{event, Level}; use super::start::handle_new_chat_member; use super::types::*; use crate::db::DbPool; +use crate::util::{unwrap_env, parse_env}; use super::dl::cmd_download; use super::op::cmd_op; -use super::request::{cmd_listrequests, cmd_request, cmd_approve, cmd_decline}; -use super::request_chat::{cmd_listrequests_chat, cmd_request_chat, cmd_approve_chat, cmd_decline_chat}; +use super::request::{cmd_approve, cmd_decline, cmd_listrequests, cmd_request}; +use super::request_chat::{ + cmd_approve_chat, cmd_decline_chat, cmd_listrequests_chat, cmd_request_chat, +}; use super::start::{cmd_start, handle_my_chat_member}; -fn parse_env(name: &str) -> T -where - T: FromStr, - T::Err: fmt::Debug, -{ - str::parse( - env::var(name) - .expect(format!("env '{}' variable not defined", name).as_str()) - .as_str(), - ) - .expect(format!("env '{}' parse error", name).as_str()) -} - pub async fn bot_main(db: DbPool) -> anyhow::Result<()> { event!(Level::INFO, "start"); - let bot = Bot::new(env::var("BOT_TOKEN")?); + let bot = Bot::new(unwrap_env("BOT_TOKEN")); let listener = Polling::builder(bot.clone()) .timeout(Duration::from_secs(parse_env("POLLING_TIMEOUT"))) .limit(parse_env("POLLING_LIMIT")) @@ -121,7 +108,7 @@ enum Command { Download(String), #[command(alias = "op")] OP, - + #[command(alias = "request")] Request(String), #[command(alias = "listrequests")] diff --git a/src/util.rs b/src/util.rs index 0ab67b7..b1ccadf 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,18 +1,15 @@ -use std::path::Path; +use std::env; +use std::fmt; +use std::str::FromStr; -#[cfg(debug_assertions)] -pub const VAR_LIB: &str = "target/debug"; - -#[cfg(not(debug_assertions))] -pub const VAR_LIB: &str = "/var/lib/mk-dl-bot"; - -// #[cfg(debug_assertions)] -// pub const VAR_LOG: &str = "target/debug"; - -// #[cfg(not(debug_assertions))] -// pub const VAR_LOG: &str = "/var/log/mk-dl-bot"; - -pub fn make_database_url() -> String { - let path = Path::new(VAR_LIB).join("mk-dl-bot.db"); - format!("sqlite://{}", path.as_os_str().to_str().unwrap()).to_string() +pub fn unwrap_env(name: &str) -> String { + env::var(name).expect(format!("env '{}' variable not defined", name).as_str()) +} + +pub fn parse_env(name: &str) -> T +where + T: FromStr, + T::Err: fmt::Debug, +{ + str::parse(unwrap_env(name).as_str()).expect(format!("env '{}' parse error", name).as_str()) }