build.lib.cmds.SSHClient: Finish __init_askpass()

Finish and test the __init_askpass() method, works.

__init_askpass() had never been tested. Finish it and make sure it
works.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-11-20 12:42:45 +01:00
commit babf58e2dd

View file

@ -82,18 +82,16 @@ class SSHClientCmd(SSHClient): # export
def __init_askpass(self):
if self.__askpass is None and self.password is not None:
import tempfile
print(self.password)
raise Exception('Huhu')
import sys, tempfile
prefix = os.path.basename(sys.argv[0]) + '-'
f = NamedTemporaryFile(mode='w+t', prefix=prefix, delete=False)
os.chmod(self.__askpass, 0o0700)
f = tempfile.NamedTemporaryFile(mode='w+t', prefix=prefix, delete=False)
os.chmod(f.name, 0o0700)
self.__askpass = f.name
f.write(f'#!/bin/bash\n\necho -n "{self.password}\n"')
f.close()
for key, val in {'SSH_ASKPASS': self.__askpass, 'SSH_ASKPASS_REQUIRE': 'force'}:
for key, val in {'SSH_ASKPASS': self.__askpass, 'SSH_ASKPASS_REQUIRE': 'force'}.items():
self.__askpass_orig[key] = os.getenv(key)
os.setenv(key, val)
os.environ[key] = val
def run_cmd(self, cmd: str):
self.__init_askpass()