#!/usr/local/bin/perl # Show the disk usage tree require './disk-usage-lib.pl'; @dirs = split(/\t+/, $config{'dirs'}); $fors = &text(@dirs > 1 ? 'index_fors' : 'index_for', join(" ", map { "$_" } @dirs)); &ui_print_header($fors, $module_info{'desc'}, "", undef, 1, 1); $tree = &get_usage_tree(); if ($tree) { # Show it %open = map { $_, 1 } &get_heiropen(); $open{"/"} = 1; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; &traverse($tree, 0); print "
$text{'index_total'}$text{'index_files'}$text{'index_dir'}
\n"; } else { print "$text{'index_none'}

\n"; } print "


\n"; print &ui_buttons_start(); print &ui_buttons_row("edit_sched.cgi", $text{'index_sched'}, $text{'index_scheddesc'}); print &ui_buttons_row("run.cgi", $text{'index_run'}, $text{'index_rundesc'}); print &ui_buttons_end(); &ui_print_footer("/", $text{'index'}); sub traverse { local ($node, $indent) = @_; return if ($node->{'total'} < $config{'min'}); print "\n"; print "",&nice_size($node->{'total'}, $config{'units'}),"\n"; print "",&nice_size($node->{'files'}, $config{'units'}),"\n"; print "", " " x ($indent*3); if ($node->{'dir'} ne "/") { print "{'dir'}\">\n"; $act = $open{$node->{'dir'}} ? "close" : "open"; print "{'dir'}),"\">"; print "\n"; } else { print "\n"; } print "$node->{'dir'}\n"; print "\n"; if ($open{$node->{'dir'}}) { # Do sub-directories too foreach my $subdir (sort { $b->{'total'} <=> $a->{'total'} } @{$node->{'subs'}}) { &traverse($subdir, $indent+1); } } }