From 951e9e87b1e0a8631ba9b148090b5675ac5c015c Mon Sep 17 00:00:00 2001 From: Sven Wegener Date: Wed, 13 Apr 2016 07:58:21 +0200 Subject: [PATCH 1/3] Remove executable bits Signed-off-by: Sven Wegener --- manifests/download.pp | 0 manifests/init.pp | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 manifests/download.pp mode change 100755 => 100644 manifests/init.pp diff --git a/manifests/download.pp b/manifests/download.pp old mode 100755 new mode 100644 diff --git a/manifests/init.pp b/manifests/init.pp old mode 100755 new mode 100644 From f52ceeccf8305d1783b14d110c036ab901e2a64e Mon Sep 17 00:00:00 2001 From: Sven Wegener Date: Wed, 13 Apr 2016 07:58:29 +0200 Subject: [PATCH 2/3] Support extracting uncompressed .tar files Closes camptocamp/puppet-archive#57 Signed-off-by: Sven Wegener --- README.md | 1 + manifests/extract.pp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index 8e2b785..4490b86 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Puppet Module to download and extract tar and zip archives based on [camptocamp/ Supported archive types are: +- `tar` - `tar.gz`, `tgz` - `tar.bz2`, `tbz2` - `tar.xz`, `txz` diff --git a/manifests/extract.pp b/manifests/extract.pp index 0688014..0fe4df6 100644 --- a/manifests/extract.pp +++ b/manifests/extract.pp @@ -57,6 +57,7 @@ 'present': { $extract_zip = "unzip -o ${src_target}/${name}.${extension} -d ${target}" + $extract_tar = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xf ${src_target}/${name}.${extension} -C ${target}" $extract_targz = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xzf ${src_target}/${name}.${extension} -C ${target}" $extract_tarbz2 = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xjf ${src_target}/${name}.${extension} -C ${target}" $extract_tarxz = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xpf ${src_target}/${name}.${extension} -C ${target}" @@ -68,6 +69,7 @@ $command = $extension ? { 'zip' => "${purge_command}mkdir -p ${target} && ${extract_zip}", + 'tar' => "${purge_command}mkdir -p ${target} && ${extract_tar}", 'tar.gz' => "${purge_command}mkdir -p ${target} && ${extract_targz}", 'tgz' => "${purge_command}mkdir -p ${target} && ${extract_targz}", 'tar.bz2' => "${purge_command}mkdir -p ${target} && ${extract_tarbz2}", From 08a712c870852a2707b540592941cc43f2c69352 Mon Sep 17 00:00:00 2001 From: Sven Wegener Date: Wed, 13 Apr 2016 10:35:41 +0200 Subject: [PATCH 3/3] GNU tar uses -J for decompressing .tar.xz files It worked most of the time because current versions of GNU tar guess the compression format from the file name when no compression format has been set. We ended up running tar with the --preserve-permissions option, which is the default for superuser invocations. Signed-off-by: Sven Wegener --- manifests/extract.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/extract.pp b/manifests/extract.pp index 0fe4df6..d1e0c0a 100644 --- a/manifests/extract.pp +++ b/manifests/extract.pp @@ -60,7 +60,7 @@ $extract_tar = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xf ${src_target}/${name}.${extension} -C ${target}" $extract_targz = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xzf ${src_target}/${name}.${extension} -C ${target}" $extract_tarbz2 = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xjf ${src_target}/${name}.${extension} -C ${target}" - $extract_tarxz = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xpf ${src_target}/${name}.${extension} -C ${target}" + $extract_tarxz = "${tar_command} --no-same-owner --no-same-permissions --strip-components=${strip_components} -xJf ${src_target}/${name}.${extension} -C ${target}" $purge_command = $purge ? { true => "rm -rf ${target} && ",