nodes.py: demagify toml nodes
This commit is contained in:
parent
70bd7d295d
commit
97307fc6f3
2 changed files with 28 additions and 3 deletions
21
libs/demagify.py
Normal file
21
libs/demagify.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
import bwpass
|
||||
|
||||
def demagify(something, vault):
|
||||
if isinstance(something, str):
|
||||
if something.startswith('!bwpass:'):
|
||||
return bwpass.password(something[8:])
|
||||
elif something.startswith('!bwpass_attr:'):
|
||||
identifier, attribute = something[13:].split(':', 1)
|
||||
return bwpass.attr(identifier, attribute)
|
||||
elif something.startswith('!decrypt:'):
|
||||
return vault.decrypt(something[9:])
|
||||
return something
|
||||
elif isinstance(something, dict):
|
||||
return {k:demagify(v, vault) for k,v in something.items()}
|
||||
elif isinstance(something, list):
|
||||
return [demagify(i, vault) for i in something]
|
||||
elif isinstance(something, set):
|
||||
return {demagify(i, vault) for i in something}
|
||||
elif isinstance(something, tuple):
|
||||
return tuple([demagify(i, vault) for i in something])
|
||||
return something
|
Loading…
Add table
Add a link
Reference in a new issue