File: Utils.pm

package info (click to toggle)
libmysql-diff-perl 0.60-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 240 kB
  • sloc: perl: 1,263; makefile: 12
file content (115 lines) | stat: -rw-r--r-- 2,401 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package MySQL::Diff::Utils;

=head1 NAME

MySQL::Diff::Utils - Supporting functions for MySQL:Diff

=head1 SYNOPSIS

  use MySQL::Diff::Utils qw(debug_level debug);

=head1 DESCRIPTION

Currently contains the debug message handling routines.

=cut

use warnings;
use strict;

our $VERSION = '0.60';

# ------------------------------------------------------------------------------
# Libraries

use IO::File;

# ------------------------------------------------------------------------------
# Export Components

use base qw(Exporter);
our @EXPORT_OK = qw(debug_file debug_level debug);

# ------------------------------------------------------------------------------

=head1 FUNCTIONS

=head2 Public Functions

Fuller documentation will appear here in time :)

=over 4

=item * debug_file( $file )

Accessor to set/get the current debug log file.

=item * debug_level( $level )

Accessor to set/get the current debug level for messages.

Current levels range from 1 to 4, with 1 being very brief processing messages,
2 providing high level process flow messages, 3 providing low level process
flow messages and 4 providing data dumps, etc where appropriate.

=item * debug

Writes to debug log file (if specified) and STDERR the given message, provided
is equal to or lower than the current debug level.

=back

=cut

{
    my $debug_file;
    my $debug_level = 0;

    sub debug_file {
        my ($new_debug_file) = @_;
        $debug_file = $new_debug_file if defined $new_debug_file;
        return $debug_file;
    }

    sub debug_level {
        my ($new_debug_level) = @_;
        $debug_level = $new_debug_level if defined $new_debug_level;
        return $debug_level;
    }

    sub debug {
        my $level = shift;
        return  unless($debug_level >= $level && @_);

        if($debug_file) {
            if(my $fh = IO::File->new($debug_file, 'a+')) {
                print $fh @_,"\n";
                $fh->close;
                return;
            }
        }
        
        print STDERR @_,"\n";
    }
    
}

1;

__END__

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2000-2016 Adam Spiers. All rights reserved. This
program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

=head1 SEE ALSO

L<mysqldiff>, L<MySQL::Diff>, L<MySQL::Diff::Database>, L<MySQL::Diff::Table>

=head1 AUTHOR

Adam Spiers <mysqldiff@adamspiers.org>

=cut