-
Notifications
You must be signed in to change notification settings - Fork 17
Config
Dab uses files and folders to store a simple tree structured key value store comprising of one data type, the list. A list is a file and each line in the file is an element of the list, even if it only has a single element. This simple structure provides a powerful basis for coordinating and configuring dab and its features.
The configuration is used primarily internally by dab subcommands, for example
when you register a repository with dab repo add it will store the
address as the value of key repo/NAME/url where NAME would be replaced with
the name of the repository you are registering. This config key can then be
retrieved by the user via dab config get or used by other dab subcommands
such as dab repo clone which will read the repo/NAME/url key to get the git
address to clone from.
We have seen how configuration values can be retrieved via dab config get now
lets have a look at setting and deleting values. This functionality is provided
by dab config set which allows you to overwrite a value with a new one, or if
you give it no new value it will delete the config key itself.
At this point it is worth hearkening back to an earlier statement that the dab
config is just a file and folder structure, as such there are some limitations
that you may not expect a normal key value store to have. For example if a
config key under a namespace exists such as foo/bar then you may set and
retrieve other keys under foo such as foo/barry however you cannot do so
for the foo namespace itself as it is a directory, not a file. The inverse is
also true, if you have a config get such as fliberty/gibbits set to 42 then
you cannot then use that as a namespace under which you can place other keys,
so setting fliberty/gibbits/mcgoo would fail as gibbits is a file not a
directory.
Please feel free to request an edit to this page if it lies!