6
6
use alloc:: string:: String ;
7
7
use alloc:: string:: ToString ;
8
8
use alloc:: vec:: Vec ;
9
+ use log:: Level ;
9
10
10
11
#[ cfg( not( feature = "uefi" ) ) ]
11
12
pub mod clap_std;
@@ -17,6 +18,7 @@ use std::fs;
17
18
18
19
#[ cfg( not( feature = "uefi" ) ) ]
19
20
use crate :: audio_card:: check_synaptics_fw_version;
21
+ use crate :: built_info;
20
22
use crate :: capsule;
21
23
use crate :: capsule_content:: {
22
24
find_bios_version, find_ec_in_bios_cap, find_pd_in_bios_cap, find_retimer_version,
@@ -61,6 +63,7 @@ pub enum ConsoleArg {
61
63
pub struct Cli {
62
64
pub verbosity : log:: LevelFilter ,
63
65
pub versions : bool ,
66
+ pub version : bool ,
64
67
pub esrt : bool ,
65
68
pub power : bool ,
66
69
pub pdports : bool ,
@@ -171,6 +174,38 @@ fn print_dp_hdmi_details() {
171
174
} ;
172
175
}
173
176
177
+ fn print_tool_version ( ) {
178
+ let q = "?" . to_string ( ) ;
179
+ println ! ( "Tool Version Information" ) ;
180
+ println ! ( " Version: {}" , built_info:: PKG_VERSION ) ;
181
+ println ! ( " Built At: {}" , built_info:: BUILT_TIME_UTC ) ;
182
+ println ! (
183
+ " Git Commit: {}" ,
184
+ built_info:: GIT_COMMIT_HASH . unwrap_or( & q)
185
+ ) ;
186
+ println ! (
187
+ " Git Dirty: {}" ,
188
+ built_info:: GIT_DIRTY
189
+ . map( |x| x. to_string( ) )
190
+ . unwrap_or( q. clone( ) )
191
+ ) ;
192
+
193
+ if log_enabled ! ( Level :: Info ) {
194
+ println ! (
195
+ " Built on CI: {:?}" ,
196
+ built_info:: CI_PLATFORM . unwrap_or( "None" )
197
+ ) ;
198
+ println ! (
199
+ " Git ref: {:?}" ,
200
+ built_info:: GIT_HEAD_REF . unwrap_or( & q)
201
+ ) ;
202
+ println ! ( " rustc Ver: {}" , built_info:: RUSTC_VERSION ) ;
203
+ println ! ( " Features {:?}" , built_info:: FEATURES ) ;
204
+ println ! ( " DEBUG: {}" , built_info:: DEBUG ) ;
205
+ println ! ( " Target OS: {}" , built_info:: CFG_OS ) ;
206
+ }
207
+ }
208
+
174
209
fn print_versions ( ec : & CrosEc ) {
175
210
println ! ( "UEFI BIOS" ) ;
176
211
if let Some ( smbios) = get_smbios ( ) {
@@ -326,6 +361,8 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
326
361
return 2 ;
327
362
} else if args. versions {
328
363
print_versions ( & ec) ;
364
+ } else if args. version {
365
+ print_tool_version ( ) ;
329
366
} else if args. esrt {
330
367
print_esrt ( ) ;
331
368
} else if args. intrusion {
@@ -528,6 +565,8 @@ Options:
528
565
-b Print output one screen at a time
529
566
-v, --verbose... More output per occurrence
530
567
-q, --quiet... Less output per occurrence
568
+ --versions List current firmware versions
569
+ --version Show tool version information (Add -vv for more detailed information)
531
570
--esrt Display the UEFI ESRT table
532
571
--power Show current power status (battery and AC)
533
572
--pdports Show information about USB-C PD prots
0 commit comments