]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - lib/App/Rgit/Config.pm
Add a diagnostics mode. Only print infos when this mode is enabled
[perl/modules/rgit.git] / lib / App / Rgit / Config.pm
index cf13d197a7420fe420186db7b974c767d528d628..0316634cee78daa9801460adb40f6b60f319d6c7 100644 (file)
@@ -7,10 +7,10 @@ use Carp qw/croak/;
 use Cwd qw/abs_path/;
 use File::Spec::Functions qw/file_name_is_absolute/;
 
-use Object::Tiny qw/root git cwd_repo/;
+use Object::Tiny qw/root git cwd_repo debug/;
 
 use App::Rgit::Repository;
-use App::Rgit::Utils qw/validate/;
+use App::Rgit::Utils qw/validate :levels/;
 
 =head1 NAME
 
@@ -52,9 +52,40 @@ sub new {
   root     => $root,
   git      => $args{git},
   cwd_repo => $r,
+  debug    => defined $args{debug} ? int $args{debug} : WARN,
  );
 }
 
+=head2 C<info $msg>
+
+=head2 C<warn $msg>
+
+=head2 C<err $msg>
+
+=head2 C<crit $msg>
+
+Notifies a message C<$msg> of the corresponding level.
+
+=cut
+
+sub _notify {
+ my $self = shift;
+ my $level = shift;
+ if ($self->debug >= $level) {
+  print STDERR @_;
+  return 1;
+ }
+ return 0;
+}
+
+sub info { shift->_notify(INFO, @_) }
+
+sub warn { shift->_notify(WARN, @_) }
+
+sub err  { shift->_notify(ERR, @_) }
+
+sub crit { shift->_notify(CRIT, @_) }
+
 =head2 C<root>
 
 =head2 C<git>
@@ -63,6 +94,8 @@ sub new {
 
 =head2 C<cwd_repo>
 
+=head2 C<debug>
+
 Accessors.
 
 =head1 SEE ALSO