unarchive - mvd docs to top of file
This commit is contained in:
parent
da9e2e765c
commit
84152fec3f
1 changed files with 40 additions and 38 deletions
|
@ -19,6 +19,46 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
DOCUMENTATION = '''
|
||||||
|
---
|
||||||
|
module: unarchive
|
||||||
|
short_description: Copies archive to remote locations and unpacks them
|
||||||
|
description:
|
||||||
|
- The M(unarchive) module copies an archive file on the local box to remote locations and unpacks them.
|
||||||
|
options:
|
||||||
|
src:
|
||||||
|
description:
|
||||||
|
- Local path to archive file to copy to the remote server; can be absolute or relative.
|
||||||
|
required: true
|
||||||
|
default: null
|
||||||
|
dest:
|
||||||
|
description:
|
||||||
|
- Remote absolute path where the archive should be unpacked
|
||||||
|
required: true
|
||||||
|
default: null
|
||||||
|
author: Dylan Martin
|
||||||
|
todo:
|
||||||
|
- detect changed/unchanged for .zip files
|
||||||
|
- handle common unarchive args, like preserve owner/timestamp etc...
|
||||||
|
notes:
|
||||||
|
- requires tar/unzip command on host
|
||||||
|
- can handle gzip, bzip2 and xz compressed as well as uncompressed tar files
|
||||||
|
- detects type of archive automatically
|
||||||
|
- uses tar's --diff arg to calculate if changed or not. If this arg is not
|
||||||
|
supported, it will always unpack the archive
|
||||||
|
- does not detect if a .zip file is different from destination - always unzips
|
||||||
|
- existing files/directories in the destination which are not in the archvie
|
||||||
|
are not touched. This is the same behavior as a normal archive extraction
|
||||||
|
- existing files/directories in the destination which are not in the archvie
|
||||||
|
are ignored for purposes of deciding if the archive should be unpacked or not
|
||||||
|
'''
|
||||||
|
|
||||||
|
EXAMPLES = '''
|
||||||
|
# Example from Ansible Playbooks
|
||||||
|
- unarchive: src=foo.tgz dest=/var/lib/foo
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
# class to handle .zip files
|
# class to handle .zip files
|
||||||
class _zipfile(object):
|
class _zipfile(object):
|
||||||
|
@ -96,44 +136,6 @@ class _tarxz(_tgzfile):
|
||||||
self.module = module
|
self.module = module
|
||||||
self.zipflag = 'J'
|
self.zipflag = 'J'
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
|
||||||
---
|
|
||||||
module: unarchive
|
|
||||||
short_description: Copies archive to remote locations and unpacks them
|
|
||||||
description:
|
|
||||||
- The M(unarchive) module copies an archive file on the local box to remote locations and unpacks them.
|
|
||||||
options:
|
|
||||||
src:
|
|
||||||
description:
|
|
||||||
- Local path to archive file to copy to the remote server; can be absolute or relative.
|
|
||||||
required: true
|
|
||||||
default: null
|
|
||||||
dest:
|
|
||||||
description:
|
|
||||||
- Remote absolute path where the archive should be unpacked
|
|
||||||
required: true
|
|
||||||
default: null
|
|
||||||
author: Dylan Martin
|
|
||||||
todo:
|
|
||||||
- detect changed/unchanged for .zip files
|
|
||||||
- handle common unarchive args, like preserve owner/timestamp etc...
|
|
||||||
notes:
|
|
||||||
- requires tar/unzip command on host
|
|
||||||
- can handle gzip, bzip2 and xz compressed as well as uncompressed tar files
|
|
||||||
- detects type of archive automatically
|
|
||||||
- uses tar's --diff arg to calculate if changed or not. If this arg is not
|
|
||||||
supported, it will always unpack the archive
|
|
||||||
- does not detect if a .zip file is different from destination - always unzips
|
|
||||||
- existing files/directories in the destination which are not in the archvie
|
|
||||||
are not touched. This is the same behavior as a normal archive extraction
|
|
||||||
- existing files/directories in the destination which are not in the archvie
|
|
||||||
are ignored for purposes of deciding if the archive should be unpacked or not
|
|
||||||
'''
|
|
||||||
|
|
||||||
EXAMPLES = '''
|
|
||||||
# Example from Ansible Playbooks
|
|
||||||
- unarchive: src=foo.tgz dest=/var/lib/foo
|
|
||||||
'''
|
|
||||||
# try handlers in order and return the one that works or bail if none work
|
# try handlers in order and return the one that works or bail if none work
|
||||||
def pick_handler (src,dest,module):
|
def pick_handler (src,dest,module):
|
||||||
handlers = [_tgzfile, _zipfile, _tarfile, _tarbzip, _tarxz]
|
handlers = [_tgzfile, _zipfile, _tarfile, _tarbzip, _tarxz]
|
||||||
|
|
Loading…
Reference in a new issue