mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Make «ansible-vault view» not write plaintext to a tempfile
CLI already provides a pager() method that feeds $PAGER on stdin, so we just feed that the plaintext from the vault file. We can also eliminate the redundant and now-unused shell_pager_command method in VaultEditor.
This commit is contained in:
parent
bf06e36382
commit
0bb34fd076
2 changed files with 3 additions and 16 deletions
|
@ -138,7 +138,7 @@ class VaultCLI(CLI):
|
|||
def execute_view(self):
|
||||
|
||||
for f in self.args:
|
||||
self.editor.view_file(f)
|
||||
self.pager(self.editor.plaintext(f))
|
||||
|
||||
def execute_rekey(self):
|
||||
for f in self.args:
|
||||
|
|
|
@ -300,20 +300,14 @@ class VaultEditor:
|
|||
else:
|
||||
self._edit_file_helper(filename, existing_data=plaintext, force_save=False)
|
||||
|
||||
def view_file(self, filename):
|
||||
def plaintext(self, filename):
|
||||
|
||||
check_prereqs()
|
||||
|
||||
# FIXME: Why write this to a temporary file at all? It would be safer
|
||||
# to feed it to the PAGER on stdin.
|
||||
_, tmp_path = tempfile.mkstemp()
|
||||
ciphertext = self.read_data(filename)
|
||||
plaintext = self.vault.decrypt(ciphertext)
|
||||
self.write_data(plaintext, tmp_path)
|
||||
|
||||
# drop the user into pager on the tmp file
|
||||
call(self._pager_shell_command(tmp_path))
|
||||
os.remove(tmp_path)
|
||||
return plaintext
|
||||
|
||||
def rekey_file(self, filename, new_password):
|
||||
|
||||
|
@ -361,13 +355,6 @@ class VaultEditor:
|
|||
|
||||
return editor
|
||||
|
||||
def _pager_shell_command(self, filename):
|
||||
PAGER = os.environ.get('PAGER','less')
|
||||
pager = shlex.split(PAGER)
|
||||
pager.append(filename)
|
||||
|
||||
return pager
|
||||
|
||||
class VaultFile(object):
|
||||
|
||||
def __init__(self, password, filename):
|
||||
|
|
Loading…
Reference in a new issue