48 Zeilen
1.3 KiB
Rust
48 Zeilen
1.3 KiB
Rust
use serde::Deserialize;
|
|
use tokio::runtime::LocalRuntime;
|
|
#[cfg(feature = "secrets")]
|
|
use vaultrs::{
|
|
client::{VaultClient, VaultClientSettingsBuilder},
|
|
error::ClientError,
|
|
kv2,
|
|
};
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
struct MALKey {
|
|
clientid: String,
|
|
clientsecret: String,
|
|
}
|
|
|
|
impl Default for MALKey {
|
|
fn default() -> Self {
|
|
MALKey {
|
|
clientid: "UNSET".into(),
|
|
clientsecret: "UNSET".into(),
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
println!("cargo::rerun-if-changed=build.rs");
|
|
#[allow(unused_variables)]
|
|
let runtime = LocalRuntime::new().expect("Local runtime failed to setup");
|
|
let mut data = MALKey::default();
|
|
#[cfg(feature = "mal")]
|
|
{
|
|
let client = VaultClient::new(
|
|
VaultClientSettingsBuilder::default()
|
|
.build()
|
|
.unwrap(),
|
|
)
|
|
.unwrap();
|
|
let secret: Result<MALKey, ClientError> = runtime.block_on(async { kv2::read(&client, "builds", "myanimelist").await });
|
|
match secret {
|
|
Ok(vaultdata) => data = vaultdata,
|
|
Err(error) => {
|
|
println!("cargo::warning=Failed to get secret from the vault: {}", error.to_string());
|
|
},
|
|
};
|
|
}
|
|
println!("cargo::rustc-env=MAL_CLIENTID={}\ncargo::rustc-env=MAL_CLIENTSECRET={}", data.clientid, data.clientsecret);
|
|
}
|