1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Merge branch 'thirsty_copy' of git://github.com/bcoca/ansible into testing

This commit is contained in:
Michael DeHaan 2013-02-16 12:35:16 -05:00
commit b5f90ef054

View file

@ -48,6 +48,16 @@ options:
required: false required: false
choices: [ "yes", "no" ] choices: [ "yes", "no" ]
default: "no" default: "no"
thirsty:
description:
- if C(yes), will copy the file every time and replace the
file if the contents change. If C(no), the file will only be copied if
the destination does not exist.
version_added: "1.1"
required: false
choices: [ "yes", "no" ]
default: "yes"
others:
others: others:
description: description:
- all arguments accepted by the M(file) module also work here - all arguments accepted by the M(file) module also work here
@ -68,6 +78,7 @@ def main():
src=dict(required=True), src=dict(required=True),
dest=dict(required=True), dest=dict(required=True),
backup=dict(default=False, choices=BOOLEANS), backup=dict(default=False, choices=BOOLEANS),
thirsty = dict(default='yes', choices=BOOLEANS),
), ),
add_file_common_args=True, add_file_common_args=True,
) )
@ -75,7 +86,7 @@ def main():
src = os.path.expanduser(module.params['src']) src = os.path.expanduser(module.params['src'])
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
backup = module.boolean(module.params.get('backup', False)) backup = module.boolean(module.params.get('backup', False))
file_args = module.load_file_common_arguments(module.params) thirsty = module.boolean(module.params['thirsty'])
if not os.path.exists(src): if not os.path.exists(src):
module.fail_json(msg="Source %s failed to transfer" % (src)) module.fail_json(msg="Source %s failed to transfer" % (src))
@ -86,6 +97,8 @@ def main():
md5sum_dest = None md5sum_dest = None
if os.path.exists(dest): if os.path.exists(dest):
if not thirsty:
module.exit_json(msg="file already exists", src=src, dest=dest, changed=False)
if not os.access(dest, os.W_OK): if not os.access(dest, os.W_OK):
module.fail_json(msg="Destination %s not writable" % (dest)) module.fail_json(msg="Destination %s not writable" % (dest))
if not os.access(dest, os.R_OK): if not os.access(dest, os.R_OK):