2.3 KiB
2.3 KiB
title | eleventyNavigation | ||||||
---|---|---|---|---|---|---|---|
Source code reference |
|
getting oriented
If case you're interested in developing on borgmatic, here's an abridged primer on how its Python source code is organized to help you get started. At the top level we have:
- borgmatic: The main borgmatic source module. Most of the code is here.
- docs: How-to and reference documentation, including the document you're reading now.
- sample: Example configurations for cron and systemd.
- scripts: Dev-facing scripts for things like building documentation and running end-to-end tests.
- tests: Automated tests organized by: end-to-end, integration, and unit.
Within the borgmatic
directory you'll find:
- actions: Mid-level code for running each borgmatic action (create, list, check, etc.).
- borg: Lower-level code that actually shells out to Borg for each action.
- commands: Looking to add a new flag or action? Start here. This contains borgmatic's entry point, argument parsing, and shell completion.
- config: Code responsible for loading, normalizing, and validating borgmatic's configuration.
- hooks: Looking to add a new database or monitoring integration? Start here.
So, broadly speaking, the control flow goes: commands
→ config
followed by commands
→ actions
→ borg
and hooks
.