Add puppet/archive module
[mirror/dsa-puppet.git] / 3rdparty / modules / archive / manifests / download.pp
1 # == Definition: archive::download
2 #
3 # Archive downloader with integrity verification.
4 #
5 # Parameters:
6 #
7 # - *$url:
8 # - *$digest_url:
9 # - *$digest_string: Default value undef
10 # - *$digest_type: Default value "md5".
11 # - *$timeout: Default value 120. (ignored)
12 # - *$src_target: Default value "/usr/src".
13 # - *$allow_insecure: Default value false.
14 # - *$follow_redirects: Default value false.
15 # - *$verbose: Default value true.
16 # - *$proxy_server: Default value undef.
17 # - *$user: The user used to download the archive
18 #
19 # Example usage:
20 #
21 #  archive::download {"apache-tomcat-6.0.26.tar.gz":
22 #    ensure => present,
23 #    url    => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
24 #  }
25 #
26 #  archive::download {"apache-tomcat-6.0.26.tar.gz":
27 #    ensure        => present,
28 #    digest_string => "f9eafa9bfd620324d1270ae8f09a8c89",
29 #    url           => "http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz",
30 #  }
31 #
32 define archive::download (
33   String                        $url,
34   Enum['present', 'absent']     $ensure  = present,
35   Boolean                       $checksum         = true,
36   Optional[String]              $digest_url       = undef,
37   Optional[String]              $digest_string    = undef,
38   Optional[Enum['none', 'md5', 'sha1', 'sha2','sha256', 'sha384', 'sha512']] $digest_type      = 'md5',   # bad default!
39   Integer                       $timeout          = 120,     # ignored
40   Stdlib::Compat::Absolute_path $src_target       = '/usr/src',
41   Boolean                       $allow_insecure   = false,
42   Boolean                       $follow_redirects = false,   # ignored (default)
43   Boolean                       $verbose          = true,    # ignored
44   String                        $path             = $::path, # ignored
45   Optional[String]              $proxy_server     = undef,
46   Optional[String]              $user             = undef,
47 ) {
48   $target = ($title =~ Stdlib::Compat::Absolute_path) ? {
49     false   => "${src_target}/${title}",
50     default => $title,
51   }
52
53   archive { $target:
54     ensure          => $ensure,
55     source          => $url,
56     checksum_verify => $checksum,
57     checksum        => $digest_string,
58     checksum_type   => $digest_type,
59     checksum_url    => $digest_url,
60     proxy_server    => $proxy_server,
61     user            => $user,
62     allow_insecure  => $allow_insecure,
63   }
64 }