FLASHBAKE(1)

NAME
flashbake - automated snapshots with git

SYNOPSIS
flashbake [options] <project_dir> [quiet_min]

DESCRIPTION
flashbake is a tool which watches files and automatically checks them in to a git repository. The commit lines can be customised. It is meant to be run from a cron job (see crontab(5) ). Thus it simplifies life for user by taking off the burden of manually committing changes and allowing one to focus on the work.

quiet_min is a parameter to flashbake which tells it to only commit changes to files in the project that have not been changed in the last quiet_min minutes. Setting this to 0 or omitting this disables the quiet period and flashbake immediately commits all changes when run.

One of the nice features of flashbake is its generation of automatic commit messages using its plugin system. flashbake's plugins can pull in data from various sources including your microblogging feeds, uptime, weather etc. and use that to generate the commit message.

If you are new to flashbake, check out the CONFIGURATION and USAGE sections below for more information; you can also check the wiki (address given in SEE ALSO).

OPTIONS
flashbake follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. For a complete description, see the online documentation.

--version
    show version number and exit

-h, --help
    show summary of options.

-c, --context
    just generate and show the commit message, don't check for changes.

-v, --verbose
    include debug information in the output, useful for reporting problems.

-q, --quiet
    disable all output except errors

-d, --dryrun
    do not change anything, just show what flashbake would do if executed without the -d option (dry run).

-p PLUGIN_DIR, --plugins=PLUGIN_DIR
    specify an additional location for plugins

-r, --purge
    purge any files that have been deleted from source control

CONFIGURATION
flashbake is quite easy to setup and does not require knowledge of git internals. As flashbake requires a git repository, you must create a git repository for the folder you wish to track by cd'ing into the folder and typing git init (if you have not done so already).

flashbake configuration is done through a .flashbake file in the project directory. Global options for flashbake can be specified in ~/.flashbake/config where ~ refers to the home directory (like /home/joe on Linux or /Users/joe on Mac OS X). If the ~/.flashbake/config file is present then it will get read first, followed by the project specific version.

flashbake tracks changes to only specific files which it terms as hot files. You have to specify these hot file names in the .flashbake file which should be created in the project directory. Wildcards which are used in the shell can be used, like ? for matching a single character, * for matching any number of characters and [] for ranges of characters ([0-9] would match a single digit from 0 to 9 in a filename).

EXAMPLE
Here follows an example .flashbake file (taken from the wiki), with explanatory comments.
# this enables the feed plugin
plugins:flashbake.plugins.feed:Feed
# these three lines are used by the feed plugin, see the Plugins page for
# more info
feed_url:http://www.mysite.com/feed
# author is optional
feed_author:Joe Random
# limit is optional, defaults to 5 if unused
feed_limit:3
# this line is optional, omit it to disable email
notice_to:joe@mysite.com
# alternately, if you set up an ssh tunnel, you can set this and send
# through
# the tunnel
#smtp_port:5002
# hot files
todo.txt
my_novel.txt
extra/character_notes.txt
extra/story_bible.txt
Any line beginning with # is a comment, of course. The notice_to: specifies an email address to mail when flashbake encounters some problems with a hot file. This functionality is not mandatory and you can comment notice_to: out to disable it.

USAGE
This section shows some typical usage patterns of flashbake.

If you run

flashbake -c ~/my_novel

flashbake will not commit any changes, rather it will show you the commit message it would generate if run normally. This is useful for checking that you’ve entered the options in the control file correctly and checking the commit message content.

Running

flashbake -d ~/my_novel

would make flashbake do a dry run, and it will do everything except actually updating the repository.

One of the most common ways to run flashbake is to run it under cron for example, putting this in your crontab(5)
*/15 * * * * flashbake ~/my_novel 5 > /dev/null
would make flashbake run every fifteen minutes, checking in changes to the hot files in the ~/my_novel directory which have not been changed in the last five minutes.

BUGS
The bug tracker is at http://github.com/commandline/flashbake/issues. If you are experiencing problems, try out a newer version first, if available.

SEE ALSO
A more extensive documentation for flashbake can be found at its wiki site at: http://wiki.github.com/commandline/flashbake/.

A list of available plugins with the accompanying documentation can be found at: http://wiki.github.com/commandline/flashbake/plugins

AUTHOR
Written by Thomas Gideon.

This manual page was written by Abhishek Dasgupta <abhidg@gmail.com>, for the Debian project (but may be used by others).