The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package App::TimeTracker::Command::TextNotify;
use strict;
use warnings;
use 5.010;

# ABSTRACT: App::TimeTracker post mac desktop integration plugin

use Moose::Role;
use App::TimeTracker::Utils qw(pretty_date);

after [ 'cmd_start', 'cmd_stop', 'cmd_current', 'cmd_continue' ] => sub {
    my $self = shift;
    $self->_update_text_notify();
};

sub _update_text_notify {
    my $self = shift;

    my $notify_file = $self->home->file('current.txt');

    if ( my $task = App::TimeTracker::Data::Task->current( $self->home ) ) {
        my $fh   = $notify_file->openw();
        my $text = $task->project . ' since ' . pretty_date( $task->start );

        if (   $task->can('rt_id')
            && $task->rt_id )
        {
            $text .= "\nRT" . $task->rt_id;
            $text .= ": " . $task->description if $task->description;
        }
        elsif ( my $desc = $task->description ) {
            $text .= $desc;
        }
        print $fh $text;
        say $text;
        $fh->close;
    }
    else {
        $notify_file->remove()
            if -e $notify_file;
    }
}

no Moose::Role;
1;

__END__

=pod

=encoding UTF-8

=head1 NAME

App::TimeTracker::Command::TextNotify - App::TimeTracker post mac desktop integration plugin

=head1 VERSION

version 2.023

=head1 AUTHOR

Thomas Klausner <domm@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Thomas Klausner.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut