aboutsummaryrefslogtreecommitdiff
path: root/manifests/upgrade_package.pp
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-02-14 14:11:19 -0200
committerSilvio Rhatto <rhatto@riseup.net>2011-02-14 14:11:19 -0200
commit1203852923594064e61fcfa0e4bf35f72000175d (patch)
treea2e24e5555da35cef04a6929a7669663d60c1311 /manifests/upgrade_package.pp
parentb9d11f17fff581fc854823e22a50539fc9e6ace3 (diff)
parent045e1fc748c83b55ce03c5cb2aa0a8ae29904975 (diff)
downloadpuppet-apt-1203852923594064e61fcfa0e4bf35f72000175d.tar.gz
puppet-apt-1203852923594064e61fcfa0e4bf35f72000175d.tar.bz2
Merge branch 'master' of git://labs.riseup.net/shared-apt
Conflicts: manifests/init.pp templates/sources.list.backports.erb
Diffstat (limited to 'manifests/upgrade_package.pp')
-rw-r--r--manifests/upgrade_package.pp33
1 files changed, 33 insertions, 0 deletions
diff --git a/manifests/upgrade_package.pp b/manifests/upgrade_package.pp
new file mode 100644
index 0000000..9202624
--- /dev/null
+++ b/manifests/upgrade_package.pp
@@ -0,0 +1,33 @@
+define apt::upgrade_package ($version = "") {
+
+ include apt::update
+
+ $version_suffix = $version ? {
+ '' => '',
+ 'latest' => '',
+ default => "=${version}",
+ }
+
+ if !defined(Package['apt-show-versions']) {
+ package { 'apt-show-versions':
+ ensure => installed,
+ require => undef,
+ }
+ }
+
+ if !defined(Package['dctrl-tools']) {
+ package { 'dctrl-tools':
+ ensure => installed,
+ require => undef,
+ }
+ }
+
+ exec { "apt-get -q -y -o 'DPkg::Options::=--force-confold' install ${name}${version_suffix}":
+ onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ],
+ require => [
+ Exec['apt_updated'],
+ Package['apt-show-versions', 'dctrl-tools'],
+ ],
+ }
+
+}