- exec { "add-apt-repository-${name}":
- command => "/usr/bin/add-apt-repository ${name}",
- notify => Exec["apt-update-${name}"],
- unless => $name? {
- /ppa:(.*)/ => "/bin/cat /etc/apt/sources.list /etc/apt/sources.list.d/* | /bin/egrep '^[^#].*ppa.*$1.*$'",
- default => "/bin/cat /etc/apt/sources.list /etc/apt/sources.list.d/* | /bin/egrep '^[^#].*${title}.*$'",
+ $filename_without_slashes = regsubst($name, '/', '-', 'G')
+ $filename_without_dots = regsubst($filename_without_slashes, '\.', '_', 'G')
+ $filename_without_ppa = regsubst($filename_without_dots, '^ppa:', '', 'G')
+ $sources_list_d_filename = "${filename_without_ppa}-${release}.list"
+
+ $package = $::lsbdistrelease ? {
+ /^[1-9]\..*|1[01]\..*|12.04$/ => 'python-software-properties',
+ default => 'software-properties-common',
+ }
+
+ if ! defined(Package[$package]) {
+ package { $package: }
+ }
+
+ if defined(Class[apt]) {
+ $proxy_host = getparam(Class[apt], "proxy_host")
+ $proxy_port = getparam(Class[apt], "proxy_port")
+ case $proxy_host {
+ false: {
+ $proxy_env = ""
+ }
+ default: {$proxy_env = ["http_proxy=http://${proxy_host}:${proxy_port}", "https_proxy=http://${proxy_host}:${proxy_port}"]}