devtodo man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

devtodo(1)		      Programming utility		    devtodo(1)

NAME
       todo - a reminder/task program aimed at developers

SYNPOSIS
       todo [<options>]
	      With no options, displays the items in the current directory.

       tda [-p <priority>] [-g <index>] [<text>]
	      Add  a  new item, optionally grafting it as a child of the given
	      item.

       tde <index>
	      Edit the given item.

       tdr <indices>
	      Remove the given items.

       tdd <indices>
	      Mark the specified items as being done.

       tdl [-g <index>] <database>
	      Link the	specified  devtodo  database  into  the	 current  one,
	      optionally grafting it as a child of the specified index.

DESCRIPTION
       todo is a program aimed specifically at programmers (but usable by any‐
       body at the terminal) to aid in day-to-day development.

       It maintains a list of items that have yet to be completed. This allows
       the  programmer to track outstanding bugs or items that need to be com‐
       pleted with very little effort.

       Items can be prioritised and can also be displayed in a	hierarchy,  so
       that one item may depend on another.

       With  the  use of some small shell scripts (scripts.* in the doc direc‐
       tory of the source distribution), todo can also display the outstanding
       items  in a directory as you change into it. So, for example, if you cd
       into the source directory for todo itself you should see a list of out‐
       standing items...unless all of the bugs have been fixed ;).

OPTIONS
       Options can have both a long and a short form.

       Short  options can be combined into one argument by using a hyphen fol‐
       lowed by a string of short options. Parameters  of  short  options  can
       also be appended to this string.

       -v, --verbose
	      Display verbosely

       -a, --add [<text>]
	      Add a note (will prompt for a note if one is not supplied).

       -g, --graft <index>
	      In  conjunction  with --add or --link, graft the new item to the
	      specified item.

       -l, --link <database>
	      Link the specified todo file into the body of this one.  If  the
	      linked  database	has a title set, this will be used as the body
	      of the linking item otherwise the directory name of  the	linked
	      database	will  be  used. Use --remove (or tdr) to remove linked
	      databases - this does not remove the database itself,  only  the
	      link.

       -R,--reparent <index>[,<index>]
	      Change  the  parent  of  the first item index to the second item
	      index. If no second index is given the item is reparented to the
	      root of the tree.

       -p, --priority <priority>
	      In conjunction with --add or --edit, set the priority (default |
	      veryhigh | high | medium | low | verylow)

       -e, --edit <index>
	      Edit the note that is indexed by the given number.

       --remove <indices>
	      Remove the note indexed by  the  given  numbers,	including  any
	      children.

       -d, --done <indices>
	      Mark the specified notes (and their children) as done.

       -D, --not-done <indices>
	      Mark the specified notes (and all children) as not done.

       --global-database <file>
	      Specify the database to use if either the -G or --global options
	      are specified.

       -G, --global
	      Force todo to use the database specified with --global-database.
	      If  this	is  placed in your ~/.todorc it will force todo to use
	      that database to the exclusion of all others.

       --database <file>
	      Change the database from	whatever  the  default	is  (typically
	      '.todo') to the file specified.

       -T, --TODO
	      Generate a typical TODO output text file from a Todo DB.

       -A, --all
	      Shortcut for the filter '+done,+children' to show all notes.

       -f, --filter <filter>
	      Display  only those notes that pass the filter. Please refer the
	      section FILTERS for more information.

       --colour <colours>
	      Override default colours of todo items. Please refer to the sec‐
	      tion COLOUR for more information.

       --force-colour
	      Force  use  of colour even when not outputting to a TTY. This is
	      useful when piping to less(1) -R.

       --mono Remove all ANSI escape sequences from output - useful for colour
	      impaired terminals.

       --help Display this help.

       --version
	      Display version of ToDo.

       --title [<text>]
	      Set the title of this directory's todo notes.

       --date-format <format>
	      Format  the  display  of time values. The format is that used by
	      strftime(3). The default format is '%c'.	This  option  is  best
	      specified in the ~/.todorc.

       --format <identifier>=<format>
	      Specify  the  formatting	of output. Please refer to the section
	      FORMATTING for more information.

       --use-format <builtin>=<identifier>
	      Use the format string identified by <identifier>	(defined  with
	      --format)	 as  the format string to use when formatting with the
	      builtin format <builtin>.

       --sort <expression>
	      Sort the database with the specified expression.	Refer  to  the
	      section SORTING for more detailed information.

       --paranoid
	      Be paranoid about some settings, including permissions.

       --database-loaders <loader list>
	      Try  the	database formats in the given order. Valid formats are
	      xml and binary.  eg.  todo  --database-loaders  binary,xml.  The
	      default format is XML.

       --backup [<n>]
	      Backup  the  database up to <n> times, just before it is written
	      to. If <n> is not specified, one backup will be made. The	 file‐
	      names  used  to  store the backups are the default database name
	      with their revision appended like so: .todo.1, .todo.2, etc.  To
	      actually use one of these backups, you can either mv it to .todo
	      or use --database .todo.<n> to explicitly specify its use.

       -s, --summary
	      Toggle "summary" mode, where long items  are  truncated  to  one
	      line.

       -c, --comment
	      Edit or show comments respectively.

       --timeout [<time>]
	      If <time> is specified, the timeout between database displays is
	      set to this number of seconds. If no <time>  is  specified,  the
	      behaviour	 is  to	 display  the database only if it has not been
	      displayed for the number of seconds specified by --timeout  with
	      the  <time>  given.  eg.	todo --timeout 10 --timeout would only
	      display the database at most once every 10  seconds.  Putting  a
	      timeout  10 in your ~/.todorc is a good option, then the --time‐
	      out in the doc/scripts.* will mean that the  database  won't  be
	      displayed every time you cd into a directory.

       --purge [<days-old>]
	      Purge  all  completed items older than <days-old>. If <days-old>
	      is omitted, all completed records are purged.

PRIORITIES
       Priorities can be specified symbolically using the words default, very‐
       high, high, medium, low and verylow.

       The  default  priority  has  special  meaning  in  that it will use the
       default priority for any action. This means that when editing an exist‐
       ing item, its priority is preserved; when creating a new item, the pri‐
       ority will be set to medium; when grafting a  new  item,	 its  priority
       will  be	 that  of  its parent. DevTodo will not prompt for priority if
       this is specified, making it a handy feature for your todorc.  As  with
       all options, the priority can be overridden on the command line.

FILTERS
       Filters are comprised of a list of expressions used to define the notes
       that are displayed.

       The general format of a filter expression is:

       ([-|=|+](all|children|done|<index>|<priority>))	|  (/<search   expres‐
       sion>)

       Generally,  if  a  filter expression is prefixed with a '-' it will not
       display items that match the expression, if prefixed with a '+' it will
       display	items  that match this expression in addition to others, or if
       prefixed with a '=' (or no prefix at all) it will  display  only	 those
       items  that match the expression. Note that this will only search items
       not excluded by other filters, so to search  the	 entire	 database  you
       will have to do something like: todo --filter all,/some-search-string.

       The  second form of filter expression is used for searching for text in
       a database. <search  expression>	 is  a	regular	 expression  which  is
       matched against the text body of each item.

       Filter  atoms  are  filtered  in	 order	by  done state, priority, then
       search. So first items that do not match	 the  "done"  filter  will  be
       excluded, then those that do not match the priority filter, and so on.

       The expressions in detail:

       all    Forces  all  items to be displayed. The various prefixes have no
	      effect on this expression.

       children
	      Collapse or expand child items. If the  '-'  prefix  is  present
	      children are collapsed, otherwise children are displayed.

       done   Filter on whether an item is completed or not.

       <index>
	      Note  indices  are specified as numbers. Ranges can be given ala
	      '1.2.10-20'.

       <priority>
	      Priorities are specified as described in the PRIORITIES section.
	      A prefix of '-' will display all items with priorities less than
	      or equal to the given priority. With a  '+'  prefix,  all	 items
	      with  priorities greater than or equal to the given priority are
	      shown. If '=' or no prefix is given, only items with the	speci‐
	      fied priority are displayed.

       Examples:

       todo --filter done,-children,+low

       This will display only those items that are done and have a priority of
       low or higher. In addition, children will be collapsed.

       todo /[Tt]he

       Display only those items with the word 'the' in them, where  the	 first
       letter  can  be	lower  or upper case. It may be necessary to quote the
       search expression to ensure the shell does not interpret them.

FORMATTING
       The output of todo can be changed to be more to your liking by defining
       your own formatting strings. These strings are similar to those used in
       printf(3) and strftime(3).

       The following examples, which can be placed in  ~/.todorc,  will	 mimic
       the default behaviour:

       # Display in default format
       format display=%i%[info]%f%2n.%[priority]%T

       # Display in default format
       format generated=%2i-%T%2i  (added %d, priority %p)\n\n

       There  are  four	 seperate  format  options:  display,  generated, ver‐
       bose-display and verbose-generated. The latter two are used  to	format
       their  respective  text	when  --verbose is specified as an argument to
       todo.

       In addition, users can create their own format strings by simply	 pass‐
       ing a different identifier to format. This can then be enabled by using
       --use-format. eg.

       format	   full-report=%i%[info]%f%2n.%[priority]%+1T%+1i%[info]Added:
       %[normal]%c  %[info]Completed: %[normal]%d\n%+1i%[info]Duration: %[nor‐
       mal]%D  %[info]Priority: %[normal]%p\n\n
       # Override the display format to use "full-report".
       use-format display=full-report

       The various flags that are available are:

       %<n>>  The > flag sets the number of spaces <n> to use for  all	future
	      indenting.

       %[+|-][<n>]i
	      Indent  to  depth	 of  current  item. <n> specifies the depth to
	      indent to. If <n> is ommitted, the current level is used.	 Rela‐
	      tive  values  can	 be used. eg. '%+1T' would indent to one level
	      higher than the current indentation level.

       %[+|-][<n>]T
	      Display the text of the  item,  wrapped  at  80  characters  and
	      indented	to  the	 specified level. Semantics of <n> are as with
	      %i. Note that wrapped text automatically adds a '0 at the end of
	      the text, whereas %t will not.

       %t     Unwrapped, unformatted text of the item.

       %s     Summary text (ie. one line only, equivalent to --summary).

       %p     The priority level of the current item.

       %c     The  current items creation date, formatted according to --date-
	      format.

       %d     The date when the item was marked as done,  formatted  according
	      to --date-format.

       %D     The duration of the item, formatted according to --date-format.

       %[<n>]n
	      The index number of the current item. The optional numeric value
	      <n> specifies the number of characters the number should occupy.
	      The  number  is padded out with spaces so as to fill this number
	      of characters.

       %f     The state flag of the current item.  The	displayed  values  for
	      this  flag  are  '+'  means children, '-' means done', '*' means
	      done with children.

       %F     The human readable state flag of the current item. The displayed
	      values  for this flag are 'children', 'done' means done', 'done,
	      children' and 'open'.

       %[<colour>]
	      Colours can be specified with this flag. The  valid  values  for
	      <colour> are: verylow, low, medium, high, veryhigh, title, info,
	      and priority. These are fairly self explanatory, except priority
	      changes to the current items priority colour. eg. %[priority]

       Please  note that when indenting, you will typically want to use a pre‐
       fix value of '+1' with %T. ie. %+1T. This forces the text to indent  to
       one  level  deeper  than the current level, making it sit away from any
       other formatting you may have used.

SORTING
       The display of items in the database can be  sorted  on	a  variety  of
       keys. Given a series of keys todo sorts on each successive key, contin‐
       uing to the next only if the previous key  comparison  was  equal.  For
       example:

       todo --sort -done,text

       This  will sort firstly by whether an item is completed and secondly by
       their text. This effectively groups items into two blocks - those  that
       are complete and those that aren't.

       The  keys  that	are  available are created, completed, text, priority,
       duration, none and done. Each key, except none can be prefixed with a -
       to reverse its default order and multiple keys must be seperated with a
       ,.

       If multiple --sort parameters are encountered the  last	one  is	 used.
       This  means  that a 'sort' entry in ~/.todorc will be overridden by any
       on the command line.

INDICES
       Indicies are used as options to a variety of  command  line  arguments.
       Multiple	 note  indices	are  seperated	with  commas  (spaces  are not
       allowed). Children are scoped using a '.'.

       For example, given the following notes:

       1. Do man pages
	  1. Make them more beautiful.
	  2. Make HTML documentation as well.

       The second sub-item would be represented like this: 1.2

       The wildcard '*' can be used to represent all children of a  node.  eg.
       1.*

       Ranges  of  notes  can be specified by using '<a>-<b>'. For example, to
       mark notes 10.1.2, 10.1.3 and 10.3.4 as done, you could do: todo --done
       10.1.2-4

COLOUR
       Various	items  can  be	colourised. Items that can are veryhigh, high,
       medium, low, verylow, title and info. info is used for displaying  item
       numbers and general information.

       These  items  can  be  set  to  one of eight colours. Those colours are
       black, red, green, yellow, blue, magenta, cyan, white and default.  The
       colour  default	is  used  to  specify  the default foreground terminal
       colour.

       Colours are specified like so:

       <item>=[+]<colour>

       If the optional + in this expression is used it will cause the item  to
       become bold.

       For example, a line in your ~/.todorc might look like:

       colour	 medium=+white

       Which would make medium text bold white.

TODORC
       todo  can  load	options	 from a number of resource files. The order in
       which these are parsed is as follows:

       1. The file specified in the environment variable TODORC	 or,  if  that
       does not exist, /usr/local/etc/todorc.
       2. ~/.todorc

       Options	are cumulative in that those loaded from $TODORC will be over‐
       ridden or added to by those in ~/.todorc.

       These options are specified as key/value pairs, one per line The key is
       the long name of a command line argument and the value is the parameter
       to  that	 argument,if  any.  In	addition,  environment	variables  are
       expanded.

       For  example,  the  --filter  command line argument accepts a parameter
       that is a filter expression. A default filter could  be	added  to  the
       ~/.todorc file like so:

       # Don't display child items by default
       filter -children

       The  only difference between options specified in the rc file and those
       on the command line is that options in the rc file are not prefixed  by
       --.

       In  addition,  there are two commands available in the RC file that are
       not available on the command line. They are:

       The first command, on, is used to conditionally add specific  commands.
       The  format  of	this  command  is: on <event> <command> [<arguments>].
       Valid events are add, remove,  view,  edit,  generate,  done,  notdone,
       title,  reparent, load, save, link, create and purge. Multiple commands
       can be passed to on by enclosing them in braces (whitespace is required
       between tokens). Full example below.

       The  second  command is exec <shell command>. This command will execute
       the argument it is given in a shell. The environment  variable  $TODODB
       contains	 the  filename	of  the	 current  database. eg. exec chmod 600
       $TODODB

       There is an example rc file in the doc subdirectory of the source  dis‐
       tribution.

EXAMPLES
       To display any outstanding items in the current directory, simply type:

	    todo

       To remove notes 1, 2 and 4:

	    todo --remove 1,2,4

       To display ALL items:

	    todo all

       To display only the top-level items and not their children:

	    todo -children

       (even though -children is not a valid argument, this works because todo
       interprets any command line arguments it	 doesn't  recognise  as	 being
       part of a filter expression)

       A more complex example. This adds a new item, with the text of the item
       specified on the command line, with a priority of high as  a  child  of
       the third child of the second item (if that makes any sense):

	    todo -a "Fix the man page" -p high -g 2.3

       This  is	 an  example  of how to use the TODO feature of todo. It makes
       todo generate a new TODO file from the information stored in the	 data‐
       base.  This particular example outputs all items to the TODO file, even
       those marked as done.

	    todo --filter all --TODO

       This example shows a nice use of the event triggers. When a  new	 data‐
       base is created it will force its permissions to 0600.

	    on create {
		 verbose
		 exec chmod 600 .todo
	    }

FILES
	.todo Items are stored as XML in this file.

       /usr/local/etc/todorc
	      Default  options	can be specified in this file. Please refer to
	      the section TODORC for more information.

       ~/.todorc
	      User-specific options are specified in this file.	 Please	 refer
	      to the section TODORC for more information.

AUTHORS
       Alec Thomas <alec@swapoff.org>

SEE ALSO
       phpsat <http://sourceforge.net/projects/phpsat>

Alec Thomas			    0.1.20			    devtodo(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net