NAME
File::Tudo - Tudo TODO file interface
SYNOPSIS
use File::Tudo;
# Simple convenience wrapper, useful for quick scripts
tudo "Fix that one issue";
# OO interface
my $tudo = File::Tudo.new('/path/to/TODO');
$tudo.todo.append: "Fix that one issue";
$tudo.write;
DESCRIPTION
File::Tudo is a Raku module for reading/writing simple TODO files.
Exported Subroutines
tudo
sub tudo(
$str,
:$path = default_todo
)
tudo()
is a simple convenience wrapper for File::Tudo that will quickly add an additional entry to the end of your TODO file. This can make it useful for reporting TODOs in your Raku scripts.
my @updates = gather for @packages -> $pkg {
...
}
tudo "There are updates that need taken care of!" if @updates;
$str
is the string you would like to add as an entry to your TODO file.
$path
is the path to the TODO file. Defaults to the return value of default_todo
, view its documentation for more information.
default_todo
sub default_todo()
default_todo()
returns an IO
object for the default TODO path. It will either be the path specified by the TODO_FILE
environment variable if set, or ~/TODO
otherwise.
Object-Oriented Interface
Methods
method new
method new(
$path = default_todo,
Bool :$read = True,
)
Returns a newly constructed File::Tudo.
$path
is the path to the TODO file. Defaults to the return value of default_todo
.
:$read
determines whether new()
will read TODO entries from the given file if they are present. If False
, new()
will ignore them and initialize an empty array for todo
.
method read
method read($file)
Reads a list of TODO entries from $file
, overwriting the previous todo
array. Returns the list of TODOs read.
method write
method write($file = $!path)
Writes the current todo
array to $file
. If $file
is not supplied, defaults to the value of the object's path
attribute.
Attributes
path
has IO $.path is rw
IO
object of the object's TODO file. Able to be modified.
todo
has Str @.todo is rw
Array of strings holding the list of TODO entries. Able to modified.
tudo
File::Tudo also comes with the tudo
script, which provides a nice command-line interface for manipulating File::Tudo TODO files.
ENVIRONMENT
TODO_FILE
Default path to TODO file.
EDITOR
Default text editor to use for edit
command.
VISUAL
Default text editor to use for edit
command, if EDITOR
is not set.
BUGS
Don't be ridiculous...
Report bugs on my Codeberg, https://codeberg.org/1-1sam.
AUTHOR
Written by Samuel Young, samyoung12788@gmail.com.
COPYRIGHT
Copyright 2025, Samuel Young
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.
SEE ALSO
tudo