File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 11use super :: traits:: ServiceManager ;
22use crate :: error:: Error ;
3+ use regex:: Regex ;
4+ use std:: process:: Command ;
5+ use tracing:: { error, info} ;
36
47pub struct Manager ;
58
69impl 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 {
You can’t perform that action at this time.
0 commit comments