File: download.pp

package info (click to toggle)
puppet-module-voxpupuli-archive 7.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 744 kB
  • sloc: ruby: 2,483; sh: 10; makefile: 4
file content (69 lines) | stat: -rw-r--r-- 2,098 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#
# @summary Archive downloader with integrity verification
#
# @param url
#   source 
# @param headers
#   HTTP (s) to pass to source
# @param allow_insecure
#   Allow self-signed certificate on source?
# @param checksum
#   Should checksum be validated?
# @param digest_type
#   Digest to use for calculating checksum
# @param ensure
#   ensure file present/absent
# @param src_target
#   Absolute path to staging location
# @param digest_string
#   Value  expected checksum
# @param digest_url
#   URL  expected checksum value
# @param proxy_server
#   FQDN of proxy server
# @param user
#   User used to download the archive
#
# @example
#   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",
#   }
# @example
#   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,
  Array $headers = [],
  Boolean $allow_insecure = false,
  Boolean $checksum = true,
  Enum['none', 'md5', 'sha1', 'sha2','sha256', 'sha384', 'sha512'] $digest_type = 'md5',   # bad default!
  Enum['present', 'absent'] $ensure = 'present',
  Stdlib::Absolutepath $src_target = '/usr/src',
  Optional[String] $digest_string = undef,
  Optional[String] $digest_url = undef,
  Optional[String] $proxy_server = undef,
  Optional[String] $user = undef,
) {
  $target = ($title =~ Stdlib::Absolutepath) ? {
    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,
    headers         => $headers,
    allow_insecure  => $allow_insecure,
  }
}