loading environmen variable to config added

This commit is contained in:
dongho
2024-10-23 23:08:55 +09:00
parent 025c5a83ca
commit 5b0b921306
3 changed files with 72 additions and 2 deletions

9
Cargo.lock generated
View File

@ -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",
]

View File

@ -4,3 +4,4 @@ version = "0.1.0"
edition = "2021"
[dependencies]
dotenv = "0.15.0"

View File

@ -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<String, String>,
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<Vec<Track>> = 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;
}