From 5b0b9213063956f95417ef77a872a7f435aa8012 Mon Sep 17 00:00:00 2001 From: dongho Date: Wed, 23 Oct 2024 23:08:55 +0900 Subject: [PATCH] loading environmen variable to config added --- Cargo.lock | 9 ++++++++ Cargo.toml | 1 + src/main.rs | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 54965ad..c3f7bf5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + [[package]] name = "navidrome_weekly" version = "0.1.0" +dependencies = [ + "dotenv", +] diff --git a/Cargo.toml b/Cargo.toml index 039b5b2..ef37549 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" edition = "2021" [dependencies] +dotenv = "0.15.0" diff --git a/src/main.rs b/src/main.rs index e7a11a9..52b5851 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,63 @@ -fn main() { - println!("Hello, world!"); +use dotenv::dotenv; +use std::collections::HashMap; + +struct ListenBrainz { + discovery: String, + user: String, +} + +pub struct Config { + listen_brainz: ListenBrainz, + url: String, + sleep: i32, + playlist_dir: String, + persist: bool, + system: String, + playlist_name: String, +} + +struct Credentials { + api_key: String, + user: String, + password: String, + headers: HashMap, + token: String, + salt: String, +} + +struct Song { + title: String, + artist: String, + album: String, +} + +struct Track { + album: String, + artist: String, + title: String, +} + +fn main() { + dotenv().ok(); + // let mailcoach_api_token = std::env::var("MAILCOACH_API_TOKEN").expect("MAILCOACH_API_TOKEN must be set."); + let cfg = construct_data(); + let tracks: Option> = None; +} + +fn construct_data() -> Config { + let lsb = ListenBrainz { + discovery: std::env::var("LISTENBRAINZ_DISCOVERY") + .expect("LISTENBRAINZ_DISCOVERY must be set."), + user: std::env::var("LISTENBRAINZ_USER").expect("LISTENBRAINZ_USER msut be set"), + }; + let config = Config { + listen_brainz: lsb, + url: std::env::var("SYSTEM_USERNAME").expect("SYSTEM_USERNAME must be set"), + sleep: 1, + playlist_dir: std::env::var("PLAYLIST_DIR").expect("PLAYLIST_DIR must be set"), + persist: true, + system: std::env::var("NV_WEEKLY").expect("NV_WEEKLY must be set"), + playlist_name: "".to_string(), + }; + return config; }