do 'mount-lib.pl'; sub list_system_info { my $can = &foreign_available($module_name) && $access{'sysinfo'}; if ((length($config{'sysinfo'}) && !$config{'sysinfo'}) || !$can) { return (); } my @disk_space = defined(&mount::local_disk_space) ? mount::local_disk_space() : (); my $desc = ucwords($text{'edit_usage'}); my $html; my $open = 0; if (@disk_space) { &load_theme_library(); $html = &ui_columns_start( [ucwords($text{'index_dir'}), ucwords($text{'index_type'}), ucwords($text{'edit_free'}), ucwords($text{'index_used'}), ucwords($text{'sysinfo_total'}), ucwords($text{'sysinfo_dev'}), ]); foreach my $disks (@disk_space) { if (ref($disks)) { foreach my $disk (@$disks) { my $total = $disk->{'total'}; my $itotal = $disk->{'itotal'}; next if (!$total); my $dev_id = $disk->{'device'}; my $dir = $disk->{'dir'}; my $type = $disk->{'type'}; my $total_nice = &nice_size($total); my $free = $disk->{'free'}; my $ifree = $disk->{'ifree'}; my $used_nice = &nice_size($disk->{'used'} // $total - $free); my $free_nice = &nice_size($free); my $free_percent = 100 - ($disk->{'used_percent'} // int(($total - $free) / $total * 100)); my $free_percent_html; # Inodes percent my $ifree_percent_html; my $itotal_full; my $iused; my $ifree_percent; $ifree_percent = 100 - int(($itotal - $ifree) / $itotal * 100) if ($itotal); # Calc percents if ($free_percent > 49) { $free_percent_html = &ui_text_color("$free_percent%", 'success'); $ifree_percent_html = &ui_text_color("$ifree_percent%", 'success') if ($itotal); } elsif ($free_percent > 9) { $free_percent_html = &ui_text_color("$free_percent%", 'warn'); $ifree_percent_html = &ui_text_color("$ifree_percent%", 'warn') if ($itotal); } else { $open = 1; $free_percent_html = &ui_text_color("$free_percent%", 'danger'); $ifree_percent_html = &ui_text_color("$ifree_percent%", 'danger') if ($itotal); } # Inodes total if ($itotal) { $ifree_percent_html = "
".$ifree_percent_html." ($ifree inodes)
"; $itotal_full = "
$itotal inodes
"; $iused = "
@{[$disk->{'iused'} // $disk->{'itotal'} - $disk->{'ifree'}]} inodes
"; } $html .= &ui_columns_row([$dir, $type, $free_percent_html . " ($free_nice)$ifree_percent_html", "$used_nice$iused", "$total_nice$itotal_full", $dev_id,]); } } } $html .= &ui_columns_end(); } return ( { 'type' => 'html', 'desc' => $desc, 'open' => $open, 'id' => $module_name . '_disks_info', 'html' => $html }); } sub ucwords { $_[0] =~ s/(\w+)/\u$1/g; return $_[0]; }