Skip to content

Commit 7b00571

Browse files
committed
add basic OpenRC detection
1 parent 7758e2e commit 7b00571

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/svcmgr/openrc.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
use super::traits::ServiceManager;
22
use crate::error::Error;
3+
use regex::Regex;
4+
use std::process::Command;
5+
use tracing::{error, info};
36

47
pub struct Manager;
58

69
impl ServiceManager for Manager {
710
fn detect(&self) -> bool {
8-
false
11+
let Ok(output) = super::exec_command(Command::new("openrc").arg("--version")) else {
12+
error!("Failed to execute OpenRC CLI");
13+
return false;
14+
};
15+
16+
let version_regex = Regex::new(r#"\d+.\d+.\d+"#).unwrap();
17+
let Some(version_string) = version_regex.captures(&output).and_then(|res| res.get(0))
18+
else {
19+
error!("Failed to parse SystemD version string");
20+
return false;
21+
};
22+
23+
info!("Found OpenRC v{}", version_string.as_str());
24+
true
925
}
1026

1127
fn installed(&self) -> bool {

src/svcmgr/templates/openrc

Whitespace-only changes.

0 commit comments

Comments
 (0)