#!/usr/bin/env perl
GetOptions(
\
my
%options
,
qw/app=s icon=s name=s title=s help/
);
pod2usage(0)
if
$options
{help};
$options
{app} ||=
'stdin2growl'
;
$options
{title} ||=
'stdin2growl'
;
$options
{name} ||=
'Default Notification'
;
growl_register(
app
=>
$options
{app},
$options
{icon} ? (
icon
=>
$options
{icon}) : (),
notifications
=> [
$options
{name}],
);
my
$cv
= AnyEvent->condvar;
my
$h
= AnyEvent::Handle->new(
fh
=>
*STDIN
);
$h
->on_error(
sub
{
my
(
$h
,
$fatal
,
$msg
) =
@_
;
warn
"got error: $msg\n"
;
$h
->destroy;
$cv
->
send
;
});
$h
->on_eof(
sub
{
$_
[0]->destroy;
$cv
->
send
;
});
$h
->on_read(
sub
{
$_
[0]->push_read(
line
=>
sub
{
my
(
$h
,
$line
) =
@_
;
growl_notify(
name
=>
$options
{name},
title
=>
$options
{title},
description
=>
$line
,
);
});
});
$cv
->
recv
;