20 # Default: backup every 6 hours (21600 seconds) |
20 # Default: backup every 6 hours (21600 seconds) |
21 'backup_interval': 21600, |
21 'backup_interval': 21600, |
22 # Default: retry every 15 minutes if unable to connect / unfinished backup |
22 # Default: retry every 15 minutes if unable to connect / unfinished backup |
23 'retry_interval': 900, |
23 'retry_interval': 900, |
24 # Extract passphrases at startup or on demand? |
24 # Extract passphrases at startup or on demand? |
25 '__extract_passphrases_at_startup': True, |
25 'extract_passphrases_at_startup': True, |
|
26 # Do not insert a quit menu entry (useful for installing on computers of |
|
27 # inexperienced users) |
|
28 'no_quit_menu_entry': False, |
26 # Borg settings |
29 # Borg settings |
27 'borg': { |
30 'borg': { |
28 'executable': 'borg', |
31 'executable': 'borg', |
29 'common_parameters': [], |
32 'common_parameters': [], |
30 'create_parameters': [], |
33 'create_parameters': [], |
37 # Type checking etc. |
40 # Type checking etc. |
38 # |
41 # |
39 |
42 |
40 def error(x): |
43 def error(x): |
41 raise AssertionError(x) |
44 raise AssertionError(x) |
|
45 |
|
46 def check_bool(cfg, field, descr, loc, default=None): |
|
47 return check_field(cfg, field, descr, loc, default, |
|
48 lambda x: isinstance(x, bool)) |
42 |
49 |
43 def check_string(cfg, field, descr, loc, default=None): |
50 def check_string(cfg, field, descr, loc, default=None): |
44 return check_field(cfg, field, descr, loc, default, |
51 return check_field(cfg, field, descr, loc, default, |
45 lambda x: isinstance(x, str)) |
52 lambda x: isinstance(x, str)) |
46 |
53 |
137 'borg', defaults['borg'], |
144 'borg', defaults['borg'], |
138 check_list_of_dicts) |
145 check_list_of_dicts) |
139 |
146 |
140 check_and_set(settings, 'backup_interval', 'top-level', defaults, check_nonneg_int) |
147 check_and_set(settings, 'backup_interval', 'top-level', defaults, check_nonneg_int) |
141 check_and_set(settings, 'retry_interval', 'top-level', defaults, check_nonneg_int) |
148 check_and_set(settings, 'retry_interval', 'top-level', defaults, check_nonneg_int) |
142 check_and_set(settings, '__extract_passphrases_at_startup', 'top-level', defaults, check_nonneg_int) |
149 check_and_set(settings, 'extract_passphrases_at_startup', 'top-level', defaults, check_nonneg_int) |
|
150 check_and_set(settings, 'no_quit_menu_entry', 'top-level', defaults, check_bool) |
143 check_and_set(settings, 'borg', 'top-level', defaults, check_dict) |
151 check_and_set(settings, 'borg', 'top-level', defaults, check_dict) |
144 # Check parameters within 'borg' |
152 # Check parameters within 'borg' |
145 if True: |
153 if True: |
146 check_and_set(settings['borg'], 'executable', 'borg', |
154 check_and_set(settings['borg'], 'executable', 'borg', |
147 defaults['borg'], check_string) |
155 defaults['borg'], check_string) |