Also read .yml ending configuration files
Closes https://projects.torsion.org/witten/borgmatic/issues/178.
This commit is contained in:
parent
8f882ea3ea
commit
8424e443a9
2 changed files with 18 additions and 2 deletions
|
@ -22,7 +22,7 @@ def collect_config_filenames(config_paths):
|
||||||
'''
|
'''
|
||||||
Given a sequence of config paths, both filenames and directories, resolve that to an iterable
|
Given a sequence of config paths, both filenames and directories, resolve that to an iterable
|
||||||
of files. Accomplish this by listing any given directories looking for contained config files
|
of files. Accomplish this by listing any given directories looking for contained config files
|
||||||
(ending with the ".yaml" extension). This is non-recursive, so any directories within the given
|
(ending with the ".yaml" or ".yml" extension). This is non-recursive, so any directories within the given
|
||||||
directories are ignored.
|
directories are ignored.
|
||||||
|
|
||||||
Return paths even if they don't exist on disk, so the user can find out about missing
|
Return paths even if they don't exist on disk, so the user can find out about missing
|
||||||
|
@ -43,5 +43,6 @@ def collect_config_filenames(config_paths):
|
||||||
|
|
||||||
for filename in sorted(os.listdir(path)):
|
for filename in sorted(os.listdir(path)):
|
||||||
full_filename = os.path.join(path, filename)
|
full_filename = os.path.join(path, filename)
|
||||||
if full_filename.endswith('.yaml') and not os.path.isdir(full_filename):
|
matching_filetype = full_filename.endswith('.yaml') or full_filename.endswith('.yml')
|
||||||
|
if matching_filetype and not os.path.isdir(full_filename):
|
||||||
yield full_filename
|
yield full_filename
|
||||||
|
|
|
@ -30,6 +30,21 @@ def test_collect_config_filenames_collects_given_files():
|
||||||
assert config_filenames == config_paths
|
assert config_filenames == config_paths
|
||||||
|
|
||||||
|
|
||||||
|
def test_collect_config_filenames_collects_yml_file_endings():
|
||||||
|
config_paths = ('config.yaml', '/etc/borgmatic.d')
|
||||||
|
mock_path = flexmock(module.os.path)
|
||||||
|
mock_path.should_receive('exists').and_return(True)
|
||||||
|
mock_path.should_receive('isdir').with_args('config.yaml').and_return(False)
|
||||||
|
mock_path.should_receive('isdir').with_args('/etc/borgmatic.d').and_return(True)
|
||||||
|
mock_path.should_receive('isdir').with_args('/etc/borgmatic.d/foo.yml').and_return(False)
|
||||||
|
flexmock(module.os).should_receive('listdir')
|
||||||
|
flexmock(sys.modules['builtins']).should_receive('sorted').and_return(['foo.yml'])
|
||||||
|
|
||||||
|
config_filenames = tuple(module.collect_config_filenames(config_paths))
|
||||||
|
|
||||||
|
assert config_filenames == ('config.yaml', '/etc/borgmatic.d/foo.yml')
|
||||||
|
|
||||||
|
|
||||||
def test_collect_config_filenames_collects_files_from_given_directories_and_ignores_sub_directories():
|
def test_collect_config_filenames_collects_files_from_given_directories_and_ignores_sub_directories():
|
||||||
config_paths = ('config.yaml', '/etc/borgmatic.d')
|
config_paths = ('config.yaml', '/etc/borgmatic.d')
|
||||||
mock_path = flexmock(module.os.path)
|
mock_path = flexmock(module.os.path)
|
||||||
|
|
Loading…
Reference in a new issue