1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- class apt::backports (
- $location = undef,
- $release = undef,
- $repos = undef,
- $key = undef,
- $pin = 200,
- ){
- if $location {
- validate_string($location)
- $_location = $location
- }
- if $release {
- validate_string($release)
- $_release = $release
- }
- if $repos {
- validate_string($repos)
- $_repos = $repos
- }
- if $key {
- unless is_hash($key) {
- validate_string($key)
- }
- $_key = $key
- }
- if ($::apt::xfacts['lsbdistid'] == 'debian' or $::apt::xfacts['lsbdistid'] == 'ubuntu') {
- unless $location {
- $_location = $::apt::backports['location']
- }
- unless $release {
- $_release = "${::apt::xfacts['lsbdistcodename']}-backports"
- }
- unless $repos {
- $_repos = $::apt::backports['repos']
- }
- unless $key {
- $_key = $::apt::backports['key']
- }
- } else {
- unless $location and $release and $repos and $key {
- fail('If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key')
- }
- }
- if is_hash($pin) {
- $_pin = $pin
- } elsif is_numeric($pin) or is_string($pin) {
- # apt::source defaults to pinning to origin, but we should pin to release
- # for backports
- $_pin = {
- 'priority' => $pin,
- 'release' => $_release,
- }
- } else {
- fail('pin must be either a string, number or hash')
- }
- apt::source { 'backports':
- location => $_location,
- release => $_release,
- repos => $_repos,
- key => $_key,
- pin => $_pin,
- }
- }
|