Add puppet/archive module
[mirror/dsa-puppet.git] / 3rdparty / modules / archive / manifests / download.pp
diff --git a/3rdparty/modules/archive/manifests/download.pp b/3rdparty/modules/archive/manifests/download.pp
new file mode 100644 (file)
index 0000000..c7be9a6
--- /dev/null
@@ -0,0 +1,64 @@
+# == Definition: archive::download
+#
+# Archive downloader with integrity verification.
+#
+# Parameters:
+#
+# - *$url:
+# - *$digest_url:
+# - *$digest_string: Default value undef
+# - *$digest_type: Default value "md5".
+# - *$timeout: Default value 120. (ignored)
+# - *$src_target: Default value "/usr/src".
+# - *$allow_insecure: Default value false.
+# - *$follow_redirects: Default value false.
+# - *$verbose: Default value true.
+# - *$proxy_server: Default value undef.
+# - *$user: The user used to download the archive
+#
+# Example usage:
+#
+#  archive::download {"apache-tomcat-6.0.26.tar.gz":
+#    ensure => present,
+#    url    => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
+#  }
+#
+#  archive::download {"apache-tomcat-6.0.26.tar.gz":
+#    ensure        => present,
+#    digest_string => "f9eafa9bfd620324d1270ae8f09a8c89",
+#    url           => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
+#  }
+#
+define archive::download (
+  String                        $url,
+  Enum['present', 'absent']     $ensure  = present,
+  Boolean                       $checksum         = true,
+  Optional[String]              $digest_url       = undef,
+  Optional[String]              $digest_string    = undef,
+  Optional[Enum['none', 'md5', 'sha1', 'sha2','sha256', 'sha384', 'sha512']] $digest_type      = 'md5',   # bad default!
+  Integer                       $timeout          = 120,     # ignored
+  Stdlib::Compat::Absolute_path $src_target       = '/usr/src',
+  Boolean                       $allow_insecure   = false,
+  Boolean                       $follow_redirects = false,   # ignored (default)
+  Boolean                       $verbose          = true,    # ignored
+  String                        $path             = $::path, # ignored
+  Optional[String]              $proxy_server     = undef,
+  Optional[String]              $user             = undef,
+) {
+  $target = ($title =~ Stdlib::Compat::Absolute_path) ? {
+    false   => "${src_target}/${title}",
+    default => $title,
+  }
+
+  archive { $target:
+    ensure          => $ensure,
+    source          => $url,
+    checksum_verify => $checksum,
+    checksum        => $digest_string,
+    checksum_type   => $digest_type,
+    checksum_url    => $digest_url,
+    proxy_server    => $proxy_server,
+    user            => $user,
+    allow_insecure  => $allow_insecure,
+  }
+}