File: pseudo.py

package info (click to toggle)
cockpit 355-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 311,568 kB
  • sloc: javascript: 774,787; python: 40,655; ansic: 35,157; cpp: 11,141; sh: 3,512; makefile: 580; xml: 261
file content (18 lines) | stat: -rw-r--r-- 513 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
import sys

from cockpit._vendor.ferny import interaction_client

pw = os.environ.get('PSEUDO_PASSWORD')
if pw:
    reader, writer = os.pipe()
    # '-' is the (ignored) argv[0], and 'can haz pw' is the message in argv[1]
    interaction_client.askpass(2, writer, ['-', 'can haz pw?'], {})
    os.close(writer)

    response = os.read(reader, 1024).decode().strip()
    if response != pw:
        sys.stderr.write('pseudo says: Bad password\n')
        sys.exit(1)

os.execvp(sys.argv[1], sys.argv[1:])