Abs paths for all commands
[puppet-modules/puppetlabs-apt.git] / manifests / source.pp
1 # source.pp
2 # add an apt source
3
4 define apt::source(
5         $location = '',
6         $release = 'karmic',
7         $repos = 'main',
8         $include_src = true,
9         $required_packages = false,
10         $key = false,
11         $key_server = 'keyserver.ubuntu.com',
12         $pin = false
13 ) {
14
15         include apt
16
17         file { "${name}.list":
18                 name => "${apt::root}/sources.list.d/${name}.list",
19                 ensure => file,
20                 owner => root,
21                 group => root,
22                 mode => 644,
23                 content => template("apt/source.list.erb"),
24         }
25
26         if $pin != false {
27                 apt::pin { "${release}": priority => "${pin}" }
28         }
29
30         exec { "${name} apt update":
31                 command => "${apt::provider} update",
32                 subscribe => File["${name}.list"],
33                 refreshonly => true,
34         }
35
36         if $required_packages != false {
37                 exec { "${apt::provider} -y install ${required_packages}":
38                         subscribe => File["${name}.list"],
39                         refreshonly => true,
40                 }
41         }
42
43         if $key != false {
44                 exec { "/usr/bin/apt-key adv --keyserver ${key_server} --recv-keys ${key}":
45                         unless => "/usr/bin/apt-key list | grep ${key}",
46                         before => File["${name}.list"],
47                 }
48         }
49
50 }