defaults = { 'apt': { 'packages': { 'jq': {}, }, }, 'archive': { 'paths': {}, }, } @metadata_reactor.provides( 'archive/paths', ) def paths(metadata): return { 'archive': { 'paths': { path: { 'encrypted_path': f'/mnt/archive.enc{path}', 'exclude': [ '^\..*', '/\..*', ], } for path in metadata.get('archive/paths') }, } } @metadata_reactor.provides( 'gocryptfs/paths', ) def gocryptfs(metadata): return { 'gocryptfs': { 'paths': { path: { 'mountpoint': options['encrypted_path'], 'reverse': True, } for path, options in metadata.get('archive/paths').items() }, } }