Manual Page

NAME
====

TODOs - search TODO, FIXME and similar comments in project files

SYNOPSIS
========

    todos.sh [OPTIONS] DIRECTORY [DIRECTORY...]

DESCRIPTION
===========

TODOs is a small command-line utility to search TODO, FIXME and similar
comments in project files. It is written in Python 3 and licensed under
the terms of GNU GPL 3 license. Supported output formats are TXT, HTML
and XML.

Features
--------

-   Recursive scan of specific file types in a directory and its
    subdirectories.
-   Directories as CVS, .svn and .git can be suppressed.
-   Scanned files can be limited only to specific file types as .java,
    .py or .cpp.
-   Search patterns are defined as Python's regular expressions.
-   A line with the occurrence can be output together with a close
    context around.
-   TXT, HTML and XML output formats.
-   Suitable for continuous integration.
-   TODOs Plugin for Jenkins CI.

OPTIONS
=======

positional arguments:
---------------------

    DIRECTORY             the input directory to search in (default:
                          ['.'])

optional arguments:
-------------------

    -h, --help            show this help message and exit
    -V, --version         show version and exit
    -v, --verbose         increase output verbosity (default: False)
    -c COMMENT [COMMENT ...], --comment COMMENT [COMMENT ...]
                          the comment characters (default: ['#',
                          '//', '/*', '<!--'])
    -e PATTERN [PATTERN ...], --regexp PATTERN [PATTERN ...]
                          pattern to search; see Python re module for
                          proper syntax (default: ['\\bTODO\\b',
                          '\\bFIXME\\b'])
    -A NUM, --after-context NUM
                          number of lines that are sent to the output
                          together with the matching line (default:
                          1)
    -t EXT [EXT ...], --file-ext EXT [EXT ...]
                          check only files with the specified
                          extension (default: None)
    -D DIR [DIR ...], --suppressed DIR [DIR ...]
                          suppress the specified directory; directory
                          name or path (default: ['.git', '.svn',
                          'CVS'])
    -n ENCODING, --encoding ENCODING
                          the files encoding (default: utf-8)
    -i, --ignore-case     ignore case distinctions (default: False)
    -o TXT, --out-txt TXT
                          output text file; standard output will be
                          used if no output file is specified
                          (default: None)
    -x XML, --out-xml XML
                          output XML file (default: None)
    -m HTML, --out-html HTML
                          output HTML file (default: None)
    -f, --force           override existing output files (default:
                          False)

EXAMPLES
========

Show help and exit.

    todos.sh -h

Search default comments with default settings in a current directory and
display the results on standard output.

    todos.sh

Search default comments with verbose/debug output, rewrite any output
file if it exists, skip .git and build directories and put the results
to three files in TXT, XML and HTML formats.

    todos.sh -v -f -D .git build -o todos.txt -x todos.xml -m todos.html

Search TODO, FIXME, OPEN and @2-3 letters@ in all files under src
directory, ignore case, append additional lines that follows the line
with the occurrence and generate a HTML report.

    todos.sh -f -e '\\bTODO\\b' '\\bFIXME\\b' '\\bOPEN\\b' '@[a-zA-Z]{2,3}@' \
             -i -A 5 -m todos.html src

BUGS
====

No bugs are known at the moment.

SEE ALSO
========

See the TODOs website at http://todos.sourceforge.net/.

AUTHOR
======

Written by Michal Turek.

COPYRIGHT
=========

Copyright (C) 2013 Michal Turek. This file is part of TODOs.

TODOs is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, version 3 of the License.

TODOs is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along
with TODOs. If not, see http://www.gnu.org/licenses/.