git by default has its own way of indicating what files to track for versioning. This requires perhaps more of an understanding of git than someone looking to use flashbake may want to delve into. flashbake’s plugins, which are what generates the commit message regardless of how it is run, need a configuration file of their own, anyway. It seemed like a good idea to use this for specifying hot files in a project directory in addition to providing that info.
The control file must be right in the project directory and be named “.flashbake”. If it is not found, flashbake will complain clearly about its absence. flashbake will also complain if the project directory is not a git repository. To make a project directory a git repository, you run the “git init” command in that directory. If you view hidden files in a project directory, you should see a “.git” directory and your “.flashbake” file.
You may also create an optional `~/.flashbake/config` file that can specify plugins, options and hot files. “~” refers to your home directory, like “/home/joe” on Linux or “/Users/joe” on OS X. If the optional “.flashbake/config” file is present in your home directory, it will get read first, then the project specific version.
As of version 0.23, there are a few gotchas, however, to this optional file in your home directory. Plugin options will use the project file value if they are duplicated both in the optional home directory version and the project directory version. You can put hot files into the optional, home directory file but they will be evaluated against the project directory so probably won’t be very useful if you have more than one project. You still must have a project specific .flashbake file, anyway.
As of version 0.23, you can use globs in hot files. ? will match a single character, * will match any number of characters and  can be used for ranges or sets of characters. For example, [0-9] will match a single digit, zero through nine inclusive, in a filename.
Here’s a quick, annotated sample (yes, the .flashbake file format supports comments and blank lines):
# 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:email@example.com # alternately, if you set up an ssh tunnel, you can set this and send through # the tunnel #smtp_port:5002 # hot files, a future version will support wild cards todo.txt my_novel.txt extra/character_notes.txt extra/story_bible.txt
The smtp support is for emailing a notice when there is a problem, either an error on a particular hot file or a hot file that doesn’t exist, yet. If you do not want email notices, leave out the notice_to: line. There is an optional notice_from: line if your local mail server needs a local sender address. I will work on remote SMTP support for a future version, if I can get any testers.
I am open to suggestions for other ways of notifying when there is an error or problem that needs manual attention.
If a hot file exists but is not being tracked by git, yet, then flashbake will take care of the git details to have it start tracking that new file. This will most commonly be the case when you add a file and first add it to .flashbake. You can manually use “git add” if you are familiar with git but it is unnecessary.