debug.pl 899 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. # Always debug
  5. BEGIN { $ENV{'DEBUG'} = 1; }
  6. # Local modules
  7. use Cwd qw(abs_path);
  8. use File::Basename qw(dirname);
  9. use lib dirname(abs_path($0));
  10. use DMX;
  11. # User config
  12. my %DIM = ();
  13. my $DELAY = 10;
  14. # App config
  15. my $STATE_SOCK = 'DEBUG';
  16. # Sockets
  17. DMX::stateSocket($STATE_SOCK);
  18. DMX::stateSubscribe($STATE_SOCK);
  19. # Loop forever
  20. my %exists = ();
  21. my %mtime = ();
  22. while (1) {
  23. my $state = DMX::readState($DELAY, \%exists, \%mtime, undef());
  24. if ($state) {
  25. # Find the latest modification timestamp
  26. my $file = undef();
  27. foreach my $key (keys(%mtime)) {
  28. if (!defined($file) || $mtime{$key} > $mtime{$file}) {
  29. $file = $key;
  30. }
  31. }
  32. # Pretty print
  33. my $time = 0;
  34. if (defined($file)) {
  35. $time = $mtime{$file};
  36. } else {
  37. $file = '<NO MTIME DATA>';
  38. }
  39. print STDERR "\tLast update: " . $file . ': ' . localtime($time) . "\n";
  40. }
  41. }