mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-27 07:01:22 -07:00
Add header and footer support to assemble action
This commit is contained in:
parent
6cdee94c33
commit
fadef43af7
1 changed files with 16 additions and 2 deletions
|
@ -34,7 +34,7 @@ class ActionModule(ActionBase):
|
||||||
|
|
||||||
TRANSFERS_FILES = True
|
TRANSFERS_FILES = True
|
||||||
|
|
||||||
def _assemble_from_fragments(self, src_path, delimiter=None, compiled_regexp=None, ignore_hidden=False):
|
def _assemble_from_fragments(self, src_path, delimiter=None, compiled_regexp=None, ignore_hidden=False, header=None, footer=None):
|
||||||
''' assemble a file from a directory of fragments '''
|
''' assemble a file from a directory of fragments '''
|
||||||
|
|
||||||
tmpfd, temp_path = tempfile.mkstemp()
|
tmpfd, temp_path = tempfile.mkstemp()
|
||||||
|
@ -42,6 +42,11 @@ class ActionModule(ActionBase):
|
||||||
delimit_me = False
|
delimit_me = False
|
||||||
add_newline = False
|
add_newline = False
|
||||||
|
|
||||||
|
if header is not None:
|
||||||
|
if not header.endswith('\n'):
|
||||||
|
header += '\n'
|
||||||
|
tmp.write(header)
|
||||||
|
|
||||||
for f in sorted(os.listdir(src_path)):
|
for f in sorted(os.listdir(src_path)):
|
||||||
if compiled_regexp and not compiled_regexp.search(f):
|
if compiled_regexp and not compiled_regexp.search(f):
|
||||||
continue
|
continue
|
||||||
|
@ -72,6 +77,13 @@ class ActionModule(ActionBase):
|
||||||
else:
|
else:
|
||||||
add_newline = True
|
add_newline = True
|
||||||
|
|
||||||
|
if footer is not None:
|
||||||
|
if add_newline: # last fragment did not end with \n
|
||||||
|
footer = '\n' + footer
|
||||||
|
if not footer.endswith('\n'):
|
||||||
|
footer += '\n'
|
||||||
|
tmp.write(footer)
|
||||||
|
|
||||||
tmp.close()
|
tmp.close()
|
||||||
return temp_path
|
return temp_path
|
||||||
|
|
||||||
|
@ -83,6 +95,8 @@ class ActionModule(ActionBase):
|
||||||
src = self._task.args.get('src', None)
|
src = self._task.args.get('src', None)
|
||||||
dest = self._task.args.get('dest', None)
|
dest = self._task.args.get('dest', None)
|
||||||
delimiter = self._task.args.get('delimiter', None)
|
delimiter = self._task.args.get('delimiter', None)
|
||||||
|
header = self._task.args.get('header', None)
|
||||||
|
footer = self._task.args.get('footer', None)
|
||||||
remote_src = self._task.args.get('remote_src', 'yes')
|
remote_src = self._task.args.get('remote_src', 'yes')
|
||||||
regexp = self._task.args.get('regexp', None)
|
regexp = self._task.args.get('regexp', None)
|
||||||
ignore_hidden = self._task.args.get('ignore_hidden', False)
|
ignore_hidden = self._task.args.get('ignore_hidden', False)
|
||||||
|
@ -104,7 +118,7 @@ class ActionModule(ActionBase):
|
||||||
_re = re.compile(regexp)
|
_re = re.compile(regexp)
|
||||||
|
|
||||||
# Does all work assembling the file
|
# Does all work assembling the file
|
||||||
path = self._assemble_from_fragments(src, delimiter, _re, ignore_hidden)
|
path = self._assemble_from_fragments(src, delimiter, _re, ignore_hidden, header, footer)
|
||||||
|
|
||||||
path_checksum = checksum_s(path)
|
path_checksum = checksum_s(path)
|
||||||
dest = self._remote_expand_user(dest, tmp)
|
dest = self._remote_expand_user(dest, tmp)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue