v0.2 released

Today, I have landed mcm’s second major release. This includes a number of major features and bug fixes, taking mcm from a prototype to a trialworthy state.

File Modes

The catalog and the catalog applier tools (mcm-exec and mcm-shellify) now support setting file modes. This allows catalogs to set owners and permissions for files managed by mcm.

Lua Usability Enhancements

In v0.1.0, luacat used the default Lua path and gave little control over its output. Debugging catalog scripts was difficult because print() would send data to stdout, corrupting the catalog.

In v0.2.0, luacat is much easier to scale to larger catalogs. print() now sends its output to stderr. For ease of use in workflows, luacat accepts a -o option to send its output to a file instead of always using stdout. luacat now checks the script’s containing directory to check for modules with require(). You can also add more directories to package.path by using the -I flag or the MCM_LUACAT_PATH environment variable. One useful set of modules to include is the new luacat lib directory: I’ve written resource templates for apt packages and line-based config files like /etc/hosts. You can see more details in the luacat README.

Check it out!

There’s even more goodies: more robust output in shellify, concurrent execution, and precompiled binaries. Head over to the v0.2.0 release page to grab the latest copy and read up on how to get started.