dev/provisioning/modules/archive/manifests/init.pp
changeset 28 b0b56e0f8c7f
child 405 f239c8c5bb94
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/archive/manifests/init.pp	Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,82 @@
+# == Definition: archive
+#
+# Download and extract an archive.
+#
+# Parameters:
+#
+# - *$url:
+# - *$target: Destination directory
+# - *$purge_target: Purge Destination prior to extraction. Default false
+# - *$checksum: Default value "true"
+# - *$digest_url: Default value undef
+# - *$digest_string: Default value undef
+# - *$digest_type: Default value "md5"
+# - *$src_target: Default value "/usr/src"
+# - *$root_dir: Default value undef
+# - *$extension: Default value ".tar.gz"
+# - *$timeout: Default value 120
+# - *$allow_insecure: Default value false
+# - *$follow_redirects: Default value false
+# - *$verbose: Default value true
+# - *$strip_components: Default value 0
+# - *$proxy_server: Default value undef
+# - *$user: User used to do the download and the extraction. The final directory will be used by him/her.
+#
+# Example usage:
+#
+#   archive {"apache-tomcat-6.0.26":
+#     ensure => present,
+#     url    => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
+#     target => "/opt",
+#   }
+#
+define archive (
+  $url,
+  $target,
+  $ensure=present,
+  $checksum=true,
+  $digest_url=undef,
+  $digest_string=undef,
+  $digest_type='md5',
+  $timeout=120,
+  $root_dir=undef,
+  $extension='tar.gz',
+  $src_target='/usr/src',
+  $allow_insecure=false,
+  $follow_redirects=false,
+  $verbose=true,
+  $strip_components=0,
+  $proxy_server=undef,
+  $purge_target=false,
+  $user=undef,
+) {
+
+  archive::download {"${name}.${extension}":
+    ensure           => $ensure,
+    url              => $url,
+    checksum         => $checksum,
+    digest_url       => $digest_url,
+    digest_string    => $digest_string,
+    digest_type      => $digest_type,
+    timeout          => $timeout,
+    src_target       => $src_target,
+    allow_insecure   => $allow_insecure,
+    follow_redirects => $follow_redirects,
+    verbose          => $verbose,
+    proxy_server     => $proxy_server,
+    user             => $user,
+  }
+
+  archive::extract {$name:
+    ensure           => $ensure,
+    target           => $target,
+    purge            => $purge_target,
+    src_target       => $src_target,
+    root_dir         => $root_dir,
+    extension        => $extension,
+    timeout          => $timeout,
+    strip_components => $strip_components,
+    require          => Archive::Download["${name}.${extension}"],
+    user             => $user,
+  }
+}