version 1.8, 2010/01/11 00:00:56 |
version 1.9, 2010/01/11 00:17:38 |
|
|
} |
} |
|
|
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"; |
} |
} |
|
|
die "Unable to append\n"; |
die "Unable to append\n"; |
} |
} |
|
|
sub archive { |
sub archive { |
my ( $config ) = @_; |
my ($config) = @_; |
my $todo = Text::Todo->new($config); |
my $todo = Text::Todo->new($config); |
|
|
my $file = $todo->file; |
my $file = $todo->file; |
|
|
my $archived = $todo->archive; |
my $archived = $todo->archive; |
if (defined $archived) { |
if ( defined $archived ) { |
return print "TODO: $file archived.\n"; |
return print "TODO: $file archived.\n"; |
} |
} |
die "Unable to archive $file\n"; |
die "Unable to archive $file\n"; |
} |
} |
|
|
sub command { return &unsupported } |
sub command { return &unsupported } |
|
|
sub del { |
sub del { |
my ( $config, $line ) = @_; |
my ( $config, $line ) = @_; |
if ( !( $line && $line =~ /^\d+$/xms ) ) { |
if ( !( $line && $line =~ /^\d+$/xms ) ) { |
die 'usage: todo.pl del ITEM#' . "\n"; |
die 'usage: todo.pl del ITEM#' . "\n"; |
} |
} |
my $todo = Text::Todo->new($config); |
my $todo = Text::Todo->new($config); |
|
|
my $entry = $todo->list->[$line - 1]; |
my $entry = $todo->list->[$line - 1]; |
print "Delete '" . $entry->text . "'? (y/n)\n"; |
print "Delete '" . $entry->text . "'? (y/n)\n"; |
warn "XXX No delete confirmation currently!\n"; |
warn "XXX No delete confirmation currently!\n"; |
|
|
if ($opts{n}) { |
if ( $opts{n} ) { |
if ($todo->del($entry) && $todo->save) { |
if ( $todo->del($entry) && $todo->save ) { |
return print 'TODO: \'', $entry->text, "' deleted.\n"; |
return print 'TODO: \'', $entry->text, "' deleted.\n"; |
} |
} |
} |
} |
else { |
else { |
my $text = $entry->text; |
my $text = $entry->text; |
if ($entry->replace(q{}) && $todo->save) { |
if ( $entry->replace(q{}) && $todo->save ) { |
return print 'TODO: \'', $text, "' deleted.\n"; |
return print 'TODO: \'', $text, "' deleted.\n"; |
} |
} |
} |
} |
|
|
die "Unable to delete entry\n"; |
die "Unable to delete entry\n"; |
} |
} |
|
|
sub depri { return &unsupported } |
sub depri { |
|
my ( $config, $line ) = @_; |
|
if ( !( $line && $line =~ /^\d+$/xms ) ) { |
|
die 'usage: todo.pl del ITEM#' . "\n"; |
|
} |
|
my $todo = Text::Todo->new($config); |
|
|
|
my $entry = $todo->list->[ $line - 1 ]; |
|
if ( $entry->depri && $todo->save ) { |
|
return print $line, ': ', $entry->text, "\n", |
|
'TODO: ', $line, " deprioritized.\n"; |
|
} |
|
die "Unable to deprioritize entry\n"; |
|
} |
|
|
sub mark_done { return &unsupported } |
sub mark_done { return &unsupported } |
sub help { return &unsupported } |
sub help { return &unsupported } |
|
|
|
|
sub prepend { |
sub prepend { |
my ( $config, $line, @text) = @_; |
my ( $config, $line, @text) = @_; |
if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { |
if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { |
die 'usage: todo.pl prepend ITEM# "TEXT TO APPEND"' . "\n"; |
die 'usage: todo.pl prepend ITEM# "TEXT TO PREPEND"' . "\n"; |
} |
} |
|
|
my $text = join q{ }, @text; |
my $text = join q{ }, @text; |
|
|
if ( $entry->prepend($text) && $todo->save ) { |
if ( $entry->prepend($text) && $todo->save ) { |
return printf "%02d: %s\n", $line, $entry->text; |
return printf "%02d: %s\n", $line, $entry->text; |
} |
} |
die "Unable to append\n"; |
die "Unable to prepend\n"; |
} |
} |
|
|
sub pri { return &unsupported } |
sub pri { return &unsupported } |
|
|
my ($file) = @_; |
my ($file) = @_; |
|
|
my %config; |
my %config; |
open my $fh, '< ', $file or die "Unable to open [$file]: $!"; |
open my $fh, '<', $file or die "Unable to open [$file] : $!"; |
LINE: while (<$fh>) { |
LINE: while (<$fh>) { |
s/\r?\n$//xms; |
s/\r?\n$//xms; |
s/\s*\#.*$//xms; |
s/\s*\#.*$//xms; |