Main: Add command line option to make the process idle indefinitely

This commit is contained in:
networkException 2024-09-12 02:53:08 +02:00
parent 7096902052
commit e3f83ebe8e
Signed by: networkException
GPG key ID: E3877443AE684391

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;
@ -18,12 +19,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();
@ -91,5 +98,11 @@ fn main() -> Result<()> {
fs::write(&output_path, output) fs::write(&output_path, output)
.expect(format!("To be able to write to '{}'", output_path.to_string_lossy()).as_str()); .expect(format!("To be able to write to '{}'", output_path.to_string_lossy()).as_str());
if idle {
loop {
thread::park();
}
}
Ok(()) Ok(())
} }