Handle hostnames with upper-case letters
[webmin.git] / status / file-monitor.pl
1 # file-monitor.pl
2 # Check the status of some file
3
4 sub get_file_status
5 {
6 local @files;
7 if ($_[0]->{'file'} =~ /\*|\?/) {
8         @files = glob($_[0]->{'file'});
9         }
10 else {
11         @files = ( $_[0]->{'file'} );
12         }
13 my $allup = 1;
14 foreach my $f (@files) {
15         local @st = stat($f);
16         local $size;
17         if ($_[0]->{'test'} >= 2) {
18                 $size = -d $f ? &disk_usage_kb($f)*1024 : $st[7];
19                 }
20         if ($_[0]->{'test'} == 0) {
21                 $up = @st ? 1 : 0;
22                 }
23         elsif ($_[0]->{'test'} == 1) {
24                 $up = @st ? 0 : 1;
25                 }
26         elsif ($_[0]->{'test'} == 2) {
27                 $up = $size > $_[0]->{'greater'} ? 1 : 0;
28                 }
29         elsif ($_[0]->{'test'} == 3) {
30                 $up = $size < $_[0]->{'lesser'} ? 1 : 0;
31                 }
32         if (!$up) {
33                 $allup = 0;
34                 push(@allfiles, $f);
35                 }
36         }
37 my $desc;
38 if (@files > 1 && @allfiles) {
39         $desc = join(" ", @allfiles);
40         if ($_[0]->{'test'} == 2) {
41                 $desc = &text('file_esmall', $desc);
42                 }
43         elsif ($_[0]->{'test'} == 3) {
44                 $desc = &text('file_elarge', $desc);
45                 }
46         }
47 return { 'up' => $up,
48          'desc' => $desc };
49 }
50
51 sub show_file_dialog
52 {
53 print &ui_table_row($text{'file_file'},
54 &ui_textbox("file", $_[0]->{'file'}, 50), 3);
55
56 print &ui_table_row($text{'file_test'},
57 &ui_radio("test", int($_[0]->{'test'}),
58         [ [ 0, $text{'file_test_0'}."<br>" ],
59           [ 1, $text{'file_test_1'}."<br>" ],
60           [ 2, $text{'file_test_2'}.
61                &ui_textbox("greater", $_[0]->{'greater'}, 10)." ".
62                $text{'file_bytes'}."<br>" ],
63           [ 3, $text{'file_test_3'}.
64                &ui_textbox("lesser", $_[0]->{'lesser'}, 10)." ".
65                $text{'file_bytes'}."<br>" ] ]), 3);
66 }
67
68 sub parse_file_dialog
69 {
70 $in{'file'} || &error($text{'file_efile'});
71 $_[0]->{'file'} = $in{'file'};
72 $_[0]->{'test'} = $in{'test'};
73 $in{'greater'} =~ /^\d*$/ && $in{'lesser'} =~ /^\d*$/ ||
74 &error($text{'file_esize'});
75 $_[0]->{'greater'} = $in{'greater'};
76 $_[0]->{'lesser'} = $in{'lesser'};
77 }
78