
package JK::Misc;

use strict;
#use Sys::Syslog;

my @EXPORT = qw/verbose debug slowerr getpid/;

sub verbose {
        my $msg = join('', @_);

        warn "$msg\n";
        #warn "$msg\n" if $::opt{f};
        #syslog( 'info', $msg );
}

sub debug {
    verbose(@_) if $::opt{D};
}

sub slowerr {
    verbose(@_);   
    sleep 5;
    exit 1;
}

sub getpid {
    my $name = shift || slowerr( "getpid: no name" );

    my $pid;
    open(my $ps, '-|', 'ps', 'ax') || die "cannot pipe to ps: $!\n";
    while(<$ps>){
        if( /^\s*(\d+)\s+\S+\s+\S+\s+\S+\s+.*${name}/ ){
            $pid = $1;
            last;
        }
    }
    close $ps;

    return $pid;
}

sub import {
    my $pkg = shift;
    my $caller = caller;

    for my $f ( @EXPORT ){
        no strict;
        *{$caller . '::' . $f} = $pkg->can($f);
    }
}

1;
