From 43b131e06d1d01813abc741b839cca187abf1f94 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Wed, 7 Sep 2016 19:00:04 +0000 Subject: [PATCH] Conditionally define the default extension source Since $type and $source are both class parameters, we can't interpolate $type in the default definition for $source. Instead redefine $source inside the resource if it's unchanged from the resource default. Also make the contents of /src/mediawiki/w require the vcsrepo resource for it. Early creation of the directory causes vcsrepo to fail to clone into it. Change-Id: I9b447173d4966f03a195825047cf25afc1a4afd6 --- manifests/app.pp | 2 ++ manifests/extension.pp | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/manifests/app.pp b/manifests/app.pp index 807cb92..2bd8c93 100644 --- a/manifests/app.pp +++ b/manifests/app.pp @@ -12,12 +12,14 @@ class mediawiki::app ($revision = 'origin/REL1_27'){ provider => git, source => 'https://gerrit.wikimedia.org/r/p/mediawiki/vendor.git', revision => $revision, + require => Vcsrepo['/srv/mediawiki/w'], } file { '/srv/mediawiki/w/cache': ensure => directory, recurse => true, owner => 'www-data', group => 'www-data', + require => Vcsrepo['/srv/mediawiki/w'], } } diff --git a/manifests/extension.pp b/manifests/extension.pp index 0c82d64..3cf8aec 100644 --- a/manifests/extension.pp +++ b/manifests/extension.pp @@ -1,16 +1,25 @@ define mediawiki::extension ( $type = 'extension', $ensure = latest, # keep up to date - $source = "https://gerrit.wikimedia.org/r/p/mediawiki/${type}s/${name}.git", + $source = undef, # actual default conditionally applied below $revision = 'origin/REL1_27', ) { if $type != 'extension' and $type != 'skin' { fail( '$type must be extension or skin' ) } + if $source == undef { + # Set our actual default for $source here since we can't interpolate $type + # in it for the resource parameter default + $src = "https://gerrit.wikimedia.org/r/p/mediawiki/${type}s/${name}.git" + } else { + $src = $source + } + vcsrepo { "/srv/mediawiki/w/${type}s/${name}": ensure => $ensure, provider => git, - source => $source, + source => $src, revision => $revision, + require => Vcsrepo['/srv/mediawiki/w'], } }