/BackupManager/Dialog.pm

http://github.com/sukria/Backup-Manager · Perl · 64 lines · 49 code · 15 blank · 0 comment · 7 complexity · cce5448f7cb157d97988ca1e5ecd765e MD5 · raw file

  1. package BackupManager::Dialog;
  2. use strict;
  3. use warnings;
  4. use vars qw(@ISA @EXPORT);
  5. @ISA = ('Exporter');
  6. @EXPORT = qw(init_dialog print_info print_warning print_error);
  7. use BackupManager::Logger;
  8. my $dialog_verbose = 0;
  9. sub should_log($) {
  10. my ($level) = @_;
  11. my $level_score = {
  12. debug => 0,
  13. info => 1,
  14. warning => 2,
  15. error => 3,
  16. };
  17. my $conf_level = $ENV{BM_LOGGER_LEVEL} || 'warning';
  18. return $level_score->{$level} >= $level_score->{$conf_level};
  19. }
  20. sub init_dialog($)
  21. {
  22. my ($verbose) = @_;
  23. $dialog_verbose = $verbose if defined $verbose;
  24. }
  25. sub print_info
  26. {
  27. my ($message) = @_;
  28. $message = "" unless defined $message;
  29. chomp $message;
  30. info ($message) if should_log 'info';
  31. print STDOUT $message."\n" if $dialog_verbose;
  32. }
  33. sub print_warning
  34. {
  35. my ($message) = @_;
  36. $message = "" unless defined $message;
  37. chomp $message;
  38. warning ($message) if should_log 'warning';
  39. print STDERR $message."\n" if $dialog_verbose;
  40. }
  41. sub print_error
  42. {
  43. my ($message) = @_;
  44. $message = "" unless defined $message;
  45. chomp $message;
  46. error ($message) if should_log 'error';
  47. print STDERR $message."\n";
  48. }
  49. 1;