@@ -8,62 +8,50 @@ use ratatui::{
8
8
} ;
9
9
use std:: io;
10
10
11
- pub fn check_root ( terminal : & mut Terminal < CrosstermBackend < io:: Stdout > > ) -> io:: Result < bool > {
12
- if nix:: unistd:: geteuid ( ) . is_root ( ) {
13
- terminal. draw ( |frame| {
14
- let root_warn = Paragraph :: new (
15
- r#"
11
+ const ROOT_WARNING : & str = r#"
16
12
!!!!!!!!!!!!!! YOU ARE ABOUT TO RUN LINUTIL AS ROOT !!!!!!!!!!!!!!
17
13
This utility prioritizes compatibility with non-root environments.
18
14
Some scripts may work without any issues, some may not.
19
15
You have been warned!
20
16
!!!!!!!!!!!!!!!!!!!!!! PROCEED WITH CAUTION !!!!!!!!!!!!!!!!!!!!!!
21
17
Press [y] to continue, [n] to abort
22
- "# ,
23
- )
18
+ "# ;
19
+
20
+ pub fn check_root ( terminal : & mut Terminal < CrosstermBackend < io:: Stdout > > ) -> io:: Result < bool > {
21
+ if !nix:: unistd:: geteuid ( ) . is_root ( ) {
22
+ return Ok ( true ) ;
23
+ }
24
+ terminal. draw ( |frame| {
25
+ let root_warn = Paragraph :: new ( ROOT_WARNING )
24
26
. white ( )
25
27
. on_black ( )
26
28
. alignment ( Alignment :: Center )
27
29
. style ( Style :: default ( ) . bold ( ) )
28
30
. wrap ( Wrap { trim : true } ) ;
29
31
30
- let rects = Layout :: vertical ( [
31
- Constraint :: Fill ( 1 ) ,
32
- Constraint :: Length ( 10 ) ,
33
- Constraint :: Fill ( 1 ) ,
34
- ] )
35
- . split ( frame. area ( ) ) ;
32
+ let rects = Layout :: vertical ( [
33
+ Constraint :: Fill ( 1 ) ,
34
+ Constraint :: Length ( 10 ) ,
35
+ Constraint :: Fill ( 1 ) ,
36
+ ] )
37
+ . split ( frame. area ( ) ) ;
36
38
37
- let centered = rects[ 1 ] ;
39
+ let centered = rects[ 1 ] ;
38
40
39
- frame. render_widget ( root_warn, centered) ;
40
- } ) ?;
41
+ frame. render_widget ( root_warn, centered) ;
42
+ } ) ?;
41
43
42
- loop {
43
- match event:: read ( ) ? {
44
- Event :: Key (
45
- KeyEvent {
46
- code : KeyCode :: Char ( 'y' ) ,
47
- ..
48
- }
49
- | KeyEvent {
50
- code : KeyCode :: Char ( 'Y' ) ,
51
- ..
52
- } ,
53
- ) => break ,
54
- Event :: Key (
55
- KeyEvent {
56
- code : KeyCode :: Char ( 'n' ) ,
57
- ..
58
- }
59
- | KeyEvent {
60
- code : KeyCode :: Char ( 'N' ) ,
61
- ..
62
- } ,
63
- ) => return Ok ( false ) ,
44
+ loop {
45
+ if let Event :: Key ( KeyEvent {
46
+ code : KeyCode :: Char ( ch) ,
47
+ ..
48
+ } ) = event:: read ( ) ?
49
+ {
50
+ match ch. to_ascii_lowercase ( ) {
51
+ 'y' => return Ok ( true ) ,
52
+ 'n' => return Ok ( false ) ,
64
53
_ => { }
65
54
}
66
55
}
67
56
}
68
- Ok ( true )
69
57
}
0 commit comments