summaryrefslogtreecommitdiff
path: root/lib/Loadbars/Utils.pm
blob: 56b829d4b4e19ac9cc7db55bbf62cd709f1fc9aa (plain)
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
package Loadbars::Utils;

use strict;
use warnings;

use Exporter;

use base 'Exporter';

our @EXPORT = qw (
  debugsay
  display_info
  display_info_no_nl
  display_warn
  error
  get_version
  newline
  notnull
  null
  say
  sum
  trim
);

sub say (@) { print "$_\n" for @_; return undef }
sub newline () { say ''; return undef }
sub debugsay (@) { say "Loadbars::DEBUG: $_" for @_; return undef }
sub sum (@) { my $sum = 0; $sum += $_ // 0 for @_; return $sum }
sub null ($)    { defined $_[0] ? $_[0] : 0 }
sub notnull ($) { $_[0] != 0    ? $_[0] : 1 }
sub error ($) { die shift, "\n" }

sub trim (\$) {
    my $str = shift;
    $$str =~ s/^[\s\t]+//;
    $$str =~ s/[\s\t]+$//;
    return undef;
}
sub display_info_no_nl ($) { print "==> " . (shift) . ' ' }
sub display_info ($)       { say "==> " . shift }
sub display_warn ($)       { say "!!! " . shift }

sub get_version () {
    my $versionfile = do {
        if ( -f '.version' ) {
            '.version';
        }
        else {
            '/usr/share/loadbars/version';
        }
    };

    open my $fh, $versionfile or error("$!: $versionfile");
    my $version = <$fh>;
    close $fh;

    chomp $version;
    return $version;
}

1;