every libs/*.py and hooks/*.py now starts with a one-line module docstring; every bin/* script starts with a `# purpose:` header. discovery-by-`ls`-and-read instead of by index. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
No EOL
662 B
Python
Executable file
23 lines
No EOL
662 B
Python
Executable file
#!/usr/bin/env python3
|
|
# purpose: print node.password and selected metadata-key passwords for one node — usage: passwords-for <node>.
|
|
|
|
from bundlewrap.repo import Repository
|
|
from os.path import realpath, dirname
|
|
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('node', help='Node to generate passwords for')
|
|
args = parser.parse_args()
|
|
|
|
bw = Repository(dirname(dirname(realpath(__file__))))
|
|
node = bw.get_node(args.node)
|
|
|
|
if node.password:
|
|
print(f"password: {node.password}")
|
|
|
|
for metadata_key in sorted([
|
|
'users/root/password',
|
|
]):
|
|
if value := node.metadata.get(metadata_key, None):
|
|
print(f"{metadata_key}: {value}") |