version 1.6, 2010/01/10 23:54:26 |
version 1.8, 2010/01/11 00:00:56 |
|
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# $RedRiver: todo.pl,v 1.5 2010/01/10 23:37:12 andrew Exp $ |
# $RedRiver: todo.pl,v 1.7 2010/01/10 23:58:11 andrew Exp $ |
######################################################################## |
######################################################################## |
# todo.pl *** a perl version of todo.sh. Uses Text::Todo. |
# todo.pl *** a perl version of todo.sh. Uses Text::Todo. |
# |
# |
|
|
} |
} |
|
|
sub add { |
sub add { |
my ( $config, $entry ) = @_; |
my ( $config, @entry ) = @_; |
if ( !$entry ) { |
if ( !@entry ) { |
die "usage: todo.pl add 'item'\n"; |
die "usage: todo.pl add 'item'\n"; |
} |
} |
|
|
|
my $entry = join q{ }, @entry; |
|
|
my $todo = Text::Todo->new($config); |
my $todo = Text::Todo->new($config); |
if ( $todo->add($entry) ) { |
if ( $todo->add($entry) ) { |
my @list = $todo->list; |
my @list = $todo->list; |
|
|
} |
} |
|
|
sub addto { |
sub addto { |
my ( $config, $file, $entry ) = @_; |
my ( $config, $file, @entry ) = @_; |
if ( !( $file && $entry ) ) { |
if ( !( $file && @entry ) ) { |
die "usage: todo.pl addto DEST 'TODO ITEM'\n"; |
die "usage: todo.pl addto DEST 'TODO ITEM'\n"; |
} |
} |
|
|
|
my $entry = join q{ }, @entry; |
|
|
my $todo = Text::Todo->new($config); |
my $todo = Text::Todo->new($config); |
|
|
$file = $todo->file($file); |
$file = $todo->file($file); |
|
|
} |
} |
|
|
sub append { |
sub append { |
my ( $config, $line, $text ) = @_; |
my ( $config, $line, @text) = @_; |
if ( !( $line && $text && $line =~ /^\d+$/xms ) ) { |
if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { |
die 'usage: todo.pl append ITEM# "TEXT TO APPEND"' . "\n"; |
die 'usage: todo.pl append ITEM# "TEXT TO APPEND"' . "\n"; |
} |
} |
|
|
|
my $text = join q{ }, @text; |
|
|
my $todo = Text::Todo->new($config); |
my $todo = Text::Todo->new($config); |
my $entry = $todo->list->[ $line - 1 ]; |
my $entry = $todo->list->[ $line - 1 ]; |
|
|
|
|
} |
} |
|
|
sub move { return &unsupported } |
sub move { return &unsupported } |
sub prepend { return &unsupported } |
|
|
sub prepend { |
|
my ( $config, $line, @text) = @_; |
|
if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { |
|
die 'usage: todo.pl prepend ITEM# "TEXT TO APPEND"' . "\n"; |
|
} |
|
|
|
my $text = join q{ }, @text; |
|
|
|
my $todo = Text::Todo->new($config); |
|
my $entry = $todo->list->[ $line - 1 ]; |
|
|
|
if ( $entry->prepend($text) && $todo->save ) { |
|
return printf "%02d: %s\n", $line, $entry->text; |
|
} |
|
die "Unable to append\n"; |
|
} |
|
|
sub pri { return &unsupported } |
sub pri { return &unsupported } |
sub replace { return &unsupported } |
sub replace { return &unsupported } |
sub report { return &unsupported } |
sub report { return &unsupported } |