1"""
2This runner is designed to mirror the execution module config.py, but for
3master settings
4"""
5
6import salt.utils.data
7import salt.utils.sdb
8
9
10def get(key, default="", delimiter=":"):
11    """
12    Retrieve master config options, with optional nesting via the delimiter
13    argument.
14
15    **Arguments**
16
17    default
18
19        If the key is not found, the default will be returned instead
20
21    delimiter
22
23        Override the delimiter used to separate nested levels of a data
24        structure.
25
26    CLI Example:
27
28    .. code-block:: bash
29
30        salt-run config.get gitfs_remotes
31        salt-run config.get file_roots:base
32        salt-run config.get file_roots,base delimiter=','
33    """
34    ret = salt.utils.data.traverse_dict_and_list(
35        __opts__, key, default="_|-", delimiter=delimiter
36    )
37    if ret == "_|-":
38        return default
39    else:
40        return salt.utils.sdb.sdb_get(ret, __opts__)
41