Provide an implementation for systemd-tmpfiles.
Co-authored-by: aanderse <aaron@fosslib.net> Co-authored-by: jfroche <jfroche@pyxel.be>
This commit is contained in:
parent
549bc38339
commit
e51a1d3ed0
6 changed files with 88 additions and 3 deletions
29
src/activate/tmp_files.rs
Normal file
29
src/activate/tmp_files.rs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
use crate::activate;
|
||||
|
||||
use super::ActivationResult;
|
||||
use std::process;
|
||||
|
||||
type TmpFilesActivationResult = ActivationResult<()>;
|
||||
|
||||
pub fn activate() -> TmpFilesActivationResult {
|
||||
let mut cmd = process::Command::new("systemd-tmpfiles");
|
||||
cmd.arg("--create")
|
||||
.arg("--remove")
|
||||
.arg("/etc/tmpfiles.d/00-system-manager.conf");
|
||||
let output = cmd
|
||||
.stdout(process::Stdio::inherit())
|
||||
.stderr(process::Stdio::inherit())
|
||||
.output()
|
||||
.expect("Error forking process");
|
||||
|
||||
output.status.success().then_some(()).ok_or_else(|| {
|
||||
activate::ActivationError::WithPartialResult {
|
||||
result: (),
|
||||
source: anyhow::anyhow!(
|
||||
"Error while creating tmpfiles\nstdout: {}\nstderr: {}",
|
||||
String::from_utf8_lossy(output.stdout.as_ref()),
|
||||
String::from_utf8_lossy(output.stderr.as_ref())
|
||||
),
|
||||
}
|
||||
})
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue