Dependencies+Main: Add sd-notify and idle feature back

This patch reverts 6959e6c3a6,
32a2492425 and
7f7b6b4e29 on top of the
current tree, adding back their features.
This commit is contained in:
networkException 2025-02-24 00:17:16 +01:00
parent 83cfd6b83f
commit 945a287841
Signed by: networkException
GPG key ID: E3877443AE684391
3 changed files with 28 additions and 0 deletions

10
Cargo.lock generated
View file

@ -288,6 +288,15 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "sd-notify"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b943eadf71d8b69e661330cb0e2656e31040acf21ee7708e2c238a0ec6af2bf4"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "secrets-file-builder" name = "secrets-file-builder"
version = "0.6.0" version = "0.6.0"
@ -295,6 +304,7 @@ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
"handlebars", "handlebars",
"sd-notify",
"serde_json", "serde_json",
"url-escape", "url-escape",
] ]

View file

@ -12,5 +12,6 @@ repository = "https://git.nwex.de/networkException/secrets-file-builder"
anyhow = "1.0.88" anyhow = "1.0.88"
clap = { version = "4.5.17", features = ["derive"] } clap = { version = "4.5.17", features = ["derive"] }
handlebars = "5.1.0" handlebars = "5.1.0"
sd-notify = "0.4.5"
serde_json = "1.0.114" serde_json = "1.0.114"
url-escape = "0.1.1" url-escape = "0.1.1"

View file

@ -1,6 +1,7 @@
use std::env; use std::env;
use std::fs; use std::fs;
use std::path::PathBuf; use std::path::PathBuf;
use std::thread;
use anyhow::Result; use anyhow::Result;
@ -8,6 +9,8 @@ use clap::Parser;
use serde_json::{Map, Value}; use serde_json::{Map, Value};
use url_escape; use url_escape;
use sd_notify::NotifyState;
use handlebars::{Context, Handlebars, Helper, HelperResult, JsonRender, Output, RenderContext, RenderErrorReason}; use handlebars::{Context, Handlebars, Helper, HelperResult, JsonRender, Output, RenderContext, RenderErrorReason};
#[derive(clap::Parser)] #[derive(clap::Parser)]
@ -18,12 +21,18 @@ struct Arguments {
/// The path to write the built secret file to /// The path to write the built secret file to
output_path: PathBuf, output_path: PathBuf,
/// If the process should keep running without doing anything. This is used to keep a systemd service
/// running this and the associated RuntimeDirectory alive.
#[clap(long, default_value_t = false)]
idle: bool,
} }
fn main() -> Result<()> { fn main() -> Result<()> {
let Arguments { let Arguments {
contents_path, contents_path,
output_path, output_path,
idle,
} = Arguments::parse(); } = Arguments::parse();
let mut handlebars = Handlebars::new(); let mut handlebars = Handlebars::new();
@ -96,5 +105,13 @@ fn main() -> Result<()> {
println!("Wrote secret file to '{}'", output_path.to_string_lossy()); println!("Wrote secret file to '{}'", output_path.to_string_lossy());
sd_notify::notify(true, &[NotifyState::Ready])?;
if idle {
loop {
thread::park();
}
}
Ok(()) Ok(())
} }