flashbake - automated snapshots with git
[options] <project_dir> [quiet_min]
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.
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
sections below for more information; you can also check the wiki (address
given in SEE ALSO
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.
- show version number and exit
- -h, --help
- show summary of options.
- -c, --context
- just generate and show the commit message, don't check for
- -v, --verbose
- include debug information in the output, useful for
- -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
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
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
flashbake tracks changes to only specific files which it terms as hot
. You have to specify these hot file names in the
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).
Here follows an example .flashbake file (taken from the wiki), with explanatory
# this enables the feed plugin
# these three lines are used by the feed plugin, see the Plugins page for
# more info
# author is optional
# limit is optional, defaults to 5 if unused
# this line is optional, omit it to disable email
# alternately, if you set up an ssh tunnel, you can set this and send
# the tunnel
# hot files
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
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.
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
*/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
The bug tracker is at http://github.com/commandline/flashbake/issues. If you are
experiencing problems, try out a newer version first, if available.
A more extensive documentation for flashbake can be found at its wiki site at:
A list of available plugins with the accompanying documentation can be found at:
Written by Thomas Gideon.
This manual page was written by Abhishek Dasgupta <email@example.com>, for
the Debian project (but may be used by others).