bundlewrap/scripts/passwords-for

32 lines
928 B
Plaintext
Raw Normal View History

#!/usr/bin/env python3
from os import environ
from sys import argv
2023-02-05 16:30:58 +00:00
from bundlewrap.exceptions import FaultUnavailable
from bundlewrap.repo import Repository
from bundlewrap.utils import Fault
path = environ.get('BW_REPO_PATH', '.')
repo = Repository(path)
def print_faults(dictionary, keypath=[]):
2020-11-10 11:49:47 +00:00
for key, value in sorted(dictionary.items()):
if isinstance(value, Fault):
try:
resolved_fault = value.value
except FaultUnavailable:
print('{}/{}: [permission denied]'.format('/'.join(keypath), key))
else:
if '\n' not in resolved_fault:
print('{}/{}: {}'.format('/'.join(keypath), key, value))
elif isinstance(value, dict):
print_faults(value, keypath=keypath+[key])
if len(argv) == 1:
print('node name missing')
exit(1)
node = repo.get_node(argv[1])
print_faults(node.metadata)