The update-dotdee
program makes it very easy to manage (configuration) files with modular contents in the style of Debian and dotdee. The program takes the pathname of an existing file and updates that file based on the contents of the files in the directory with the same name as the file but ending in .d
. For example:
peter@macbook> sudo update-dotdee /etc/hosts
2013-07-06 19:32:03 macbook INFO Reading file: /etc/hosts.d/1-local
2013-07-06 19:32:03 macbook INFO Reading file: /etc/hosts.d/2-work
2013-07-06 19:32:03 macbook INFO Reading file: /etc/hosts.d/3-ipv6
2013-07-06 20:59:24 macbook INFO Checking for local changes to /etc/hosts
2013-07-06 19:32:03 macbook INFO Writing file: /etc/hosts
Some notes about how it works:
- If the given file exists but the corresponding directory does not exist yet, the directory is created and the file is moved into the directory (and renamed to
local
) so that its existing contents are preserved. - If the generated file has been modified since the last run,
update-dotdee
will refuse to overwrite its contents (unless you use the--force
option). - The files in the
.d
directory are concatenated in the natural sorting order of the filenames (as implemented by the naturalsort package).
You can install the update-dotdee
program using the following command:
pip install update-dotdee
The latest version of update-dotdee
is available on PyPi and GitHub. For bug reports please create an issue on GitHub. If you have questions, suggestions, etc. feel free to send me an e-mail at [email protected].
This software is licensed under the MIT license.
© 2013 Peter Odding.