Fix template not showing a diff with a directory
Template can take a directory as the destination. When that's the case,
we need to diff between the source and the file inside of the directory.
That happened when the directory was specified with a trailing slash but
not when it was specified on its own. This change fixes that.
Fixes #24413
(cherry picked from commit 548cacdf6a
)
This commit is contained in:
parent
58438762a1
commit
cdd6ab000b
1 changed files with 7 additions and 2 deletions
|
@ -82,9 +82,14 @@ class ActionModule(ActionBase):
|
|||
|
||||
directory_prepended = False
|
||||
if dest.endswith(os.sep):
|
||||
# Optimization. trailing slash means we know it's a directory
|
||||
directory_prepended = True
|
||||
base = os.path.basename(source)
|
||||
dest = os.path.join(dest, base)
|
||||
dest = self._connection._shell.join_path(dest, os.path.basename(source))
|
||||
else:
|
||||
# Find out if it's a directory
|
||||
dest_stat = self._execute_remote_stat(dest, task_vars, True, tmp=tmp)
|
||||
if dest_stat['exists'] and dest_stat['isdir']:
|
||||
dest = self._connection._shell.join_path(dest, os.path.basename(source))
|
||||
|
||||
# template the source data locally & get ready to transfer
|
||||
b_source = to_bytes(source)
|
||||
|
|
Loading…
Reference in a new issue