55
66use crate :: picker:: sysinfo;
77use crate :: platform:: * ;
8- use crate :: { CpuGraphMode , CpuValueMode , Settings } ;
8+ use crate :: { CpuGraphMode , CpuValueMode , MemoryGraphMode , Settings } ;
99use bytesize:: ByteSize ;
1010use uu_vmstat:: CpuLoad ;
1111use uu_w:: get_formatted_uptime_procps;
@@ -31,7 +31,11 @@ pub(crate) fn header(settings: &Settings) -> String {
3131 )
3232 } ;
3333
34- let memory_line = memory ( settings. scale_summary_mem . as_ref ( ) ) ;
34+ let memory_line = if settings. memory_graph_mode == MemoryGraphMode :: Hide {
35+ String :: new ( )
36+ } else {
37+ memory ( settings)
38+ } ;
3539
3640 format ! ( "{uptime_line}{task_and_cpu}{memory_line}" )
3741}
@@ -168,9 +172,9 @@ fn cpu_line(tag: &str, cpu_load: &CpuLoad, settings: &Settings) -> String {
168172 format ! ( "%{tag:<6}: {:>5.1}/{:<5.1}" , cpu_load. user, cpu_load. system)
169173}
170174
171- fn memory ( scale_summary_mem : Option < & String > ) -> String {
175+ fn memory ( settings : & Settings ) -> String {
172176 let binding = sysinfo ( ) . read ( ) . unwrap ( ) ;
173- let ( unit, unit_name) = match scale_summary_mem {
177+ let ( unit, unit_name) = match settings . scale_summary_mem . as_ref ( ) {
174178 Some ( scale) => match scale. as_str ( ) {
175179 "k" => ( bytesize:: KIB , "KiB" ) ,
176180 "m" => ( bytesize:: MIB , "MiB" ) ,
@@ -183,17 +187,29 @@ fn memory(scale_summary_mem: Option<&String>) -> String {
183187 None => ( bytesize:: MIB , "MiB" ) ,
184188 } ;
185189
190+ if settings. memory_graph_mode == MemoryGraphMode :: Sum {
191+ return format ! (
192+ "{unit_name} Mem : {:8.1} total, {:8.1} free, {:8.1} used, {:8.1} buff/cache\n \
193+ {unit_name} Swap: {:8.1} total, {:8.1} free, {:8.1} used, {:8.1} avail Mem",
194+ format_memory( binding. total_memory( ) , unit) ,
195+ format_memory( binding. free_memory( ) , unit) ,
196+ format_memory( binding. used_memory( ) , unit) ,
197+ format_memory( binding. available_memory( ) - binding. free_memory( ) , unit) ,
198+ format_memory( binding. total_swap( ) , unit) ,
199+ format_memory( binding. free_swap( ) , unit) ,
200+ format_memory( binding. used_swap( ) , unit) ,
201+ format_memory( binding. available_memory( ) , unit) ,
202+ unit_name = unit_name
203+ ) ;
204+ }
205+
206+ // TODO: render colored bar chart or block chart
186207 format ! (
187- "{unit_name} Mem : {:8.1} total, {:8.1} free, {:8.1} used, {:8.1} buff/cache\n \
188- {unit_name} Swap: {:8.1} total, {:8.1} free, {:8.1} used, {:8.1} avail Mem",
189- format_memory( binding. total_memory( ) , unit) ,
190- format_memory( binding. free_memory( ) , unit) ,
208+ "GiB Mem : {:>5.1}/{:<5.1}\n \
209+ GiB Swap : {:>5.1}/{:<5.1}",
191210 format_memory( binding. used_memory( ) , unit) ,
192- format_memory( binding. available_memory( ) - binding. free_memory( ) , unit) ,
193- format_memory( binding. total_swap( ) , unit) ,
194- format_memory( binding. free_swap( ) , unit) ,
211+ format_memory( binding. total_memory( ) , unit) ,
195212 format_memory( binding. used_swap( ) , unit) ,
196- format_memory( binding. available_memory( ) , unit) ,
197- unit_name = unit_name
213+ format_memory( binding. total_swap( ) , unit)
198214 )
199215}
0 commit comments