fmonitor.pl
76 lines of code
1
#!/usr/local/bin/perl
2
3
binmode(STDIN, ":utf8");
4
binmode(STDOUT, ":utf8");
5
6
# must have's!
7
use strict;
8
use warnings;
9
use CGI::Carp qw(fatalsToBrowser);
10
use DBI;
11
use URI::Escape;
12
use Term::ReadKey;
13
14
use lib "/var/www/html/Pm";
15
use Bc_dir qw(files files_asHash);
16
17
my $DEBUG = 1;
18
19
  ############################################################
20
21
  ### YOUR CONTENT HERE
22
  ReadMode 4;
23
  my $key = "";
24
25
  # get a list of files, and save it in memory
26
  my %files = files_asHash("./");
27
  my $numFiles = keys %files;
28
  if ($DEBUG) {
29
    if ($numFiles) {
30
      foreach my $file (sort keys %files) {
31
        print "$file ";
32
      }
33
      print "\n-----------------------------------------------------\n";
34
    } else {
35
      print "no files!\n";
36
      exit 1;
37
    }
38
  }
39
40
  my %discrepencies;
41
  while ( !defined( $key = ReadKey(-1) ) ) {
42
    #print "No key yet\n";
43
    # now, get another list of the files
44
    # and compare that list to our orig files
45
    # if the lists don't match, show the differences
46
    # also, show which list is different
47
    my %loopFiles = files_asHash("./");
48
    my $numLoopFiles = keys %loopFiles;
49
50
    if ($numFiles != $numLoopFiles) {
51
      my @differences = ();
52
      if ($numFiles > $numLoopFiles) {
53
        print "\@files is bigger!\n";
54
      } else {
55
        foreach my $file (keys %loopFiles) {
56
          if (not $files{$file}) {
57
            if ($discrepencies{$file}) {
58
              $discrepencies{$file}++;
59
            } else {
60
              $discrepencies{$file} = 1;
61
            }
62
          }
63
        }
64
      }
65
    } else {
66
    }
67
68
    sleep 0.5;
69
  }
70
71
  print "Get key $key\n";
72
  ReadMode 0;
73
  ############################################################
74
75
76
exit 1;