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
70
71
72
|
# File 'manifests/install.pp', line 4
class rclone::install {
$_os = $facts['os']['family'] ? {
/(Debian|Ubuntu)/ => 'linux',
default => fail("Unsupported OS family ${facts['os']['family']}"),
}
$_architecture = $facts['os']['architecture'] ? {
/arm.*/ => 'arm',
/(amd64|x86_64)/ => 'amd64',
}
$_version = $rclone::ensure ? {
/latest/ => rclone::last_version(),
default => $rclone::ensure,
}
$_download_path = '/tmp/rclone.zip'
$_instance = "rclone-v${_version}-${_os}-${_architecture}"
$_instance_binary = "${rclone::install_dir}/${_instance}/rclone"
$_instance_man_page = "${rclone::install_dir}/${_instance}/rclone.1"
if !defined(File['/opt']) {
file { '/opt':
ensure => directory,
before => File[$rclone::install_dir],
}
}
file { $rclone::install_dir:
ensure => directory,
}
if !defined(File[$rclone::man_page_dir]) {
file { $rclone::man_page_dir:
ensure => directory,
before => File[$rclone::man_page],
}
}
archive { 'download rclone':
path => $_download_path,
extract_path => $rclone::install_dir,
source => "https://downloads.rclone.org/v${_version}/${_instance}.zip",
extract => true,
cleanup => true,
creates => $_instance_binary,
require => File[$rclone::install_dir]
}
file { $_instance_binary:
owner => 'root',
mode => '0755',
subscribe => Archive['download rclone'],
}
file { $rclone::binary:
ensure => link,
target => $_instance_binary,
subscribe => Archive['download rclone'],
}
file { $rclone::man_page:
ensure => link,
target => $_instance_man_page,
subscribe => Archive['download rclone'],
notify => Exec['rclone mandb'],
}
}
|