mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Changed call to EDITOR to allow for parameters
The EDITOR environment variable is used to create and edit files in the vault. But if the EDITOR variable contains parameters, subprocess.call() breaks. This fixes the EDITOR environment variable to be safely split into a list. It adds a dependency on shlex.
This commit is contained in:
parent
324a943e12
commit
c79c001bfb
1 changed files with 10 additions and 4 deletions
|
@ -19,6 +19,7 @@
|
||||||
# installs ansible and sets it up to run on cron.
|
# installs ansible and sets it up to run on cron.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shlex
|
||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
@ -189,8 +190,7 @@ class VaultEditor(object):
|
||||||
raise errors.AnsibleError("%s exists, please use 'edit' instead" % self.filename)
|
raise errors.AnsibleError("%s exists, please use 'edit' instead" % self.filename)
|
||||||
|
|
||||||
# drop the user into vim on file
|
# drop the user into vim on file
|
||||||
EDITOR = os.environ.get('EDITOR','vim')
|
call(self._editor_shell_command(self.filename))
|
||||||
call([EDITOR, self.filename])
|
|
||||||
tmpdata = self.read_data(self.filename)
|
tmpdata = self.read_data(self.filename)
|
||||||
this_vault = VaultLib(self.password)
|
this_vault = VaultLib(self.password)
|
||||||
this_vault.cipher_name = self.cipher_name
|
this_vault.cipher_name = self.cipher_name
|
||||||
|
@ -226,8 +226,7 @@ class VaultEditor(object):
|
||||||
self.write_data(dec_data, tmp_path)
|
self.write_data(dec_data, tmp_path)
|
||||||
|
|
||||||
# drop the user into vim on the tmp file
|
# drop the user into vim on the tmp file
|
||||||
EDITOR = os.environ.get('EDITOR','vim')
|
call(self._editor_shell_command(tmp_path))
|
||||||
call([EDITOR, tmp_path])
|
|
||||||
new_data = self.read_data(tmp_path)
|
new_data = self.read_data(tmp_path)
|
||||||
|
|
||||||
# create new vault
|
# create new vault
|
||||||
|
@ -299,6 +298,13 @@ class VaultEditor(object):
|
||||||
os.remove(dest)
|
os.remove(dest)
|
||||||
shutil.move(src, dest)
|
shutil.move(src, dest)
|
||||||
|
|
||||||
|
def _editor_shell_command(self, filename):
|
||||||
|
EDITOR = os.environ.get('EDITOR','vim')
|
||||||
|
editor = shlex.split(EDITOR)
|
||||||
|
editor.append(filename)
|
||||||
|
|
||||||
|
return editor
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# CIPHERS #
|
# CIPHERS #
|
||||||
########################################
|
########################################
|
||||||
|
|
Loading…
Reference in a new issue