class wiki::moin { if !$wiki_moin_version { fail("\$wiki_moin_version must be set.") } custom::file { "/usr/local/src/moin-${wiki_moin_version}.tar.gz": ensure => present, mode => 0644, owner => root, group => root, source => "http://static.moinmo.in/files/moin-${wiki_moin_version}.tar.gz", } file { "/usr/local/src/moin-${wiki_moin_version}.patch": ensure => present, mode => 0644, owner => root, group => root, source => "puppet:///files/wiki/moin-${wiki_moin_version}.patch", } util::extract::tar { "/usr/local/src/moin-${wiki_moin_version}": strip => 1, source => "/usr/local/src/moin-${wiki_moin_version}.tar.gz", require => Custom::File["/usr/local/src/moin-${wiki_moin_version}.tar.gz"], } util::patch { "/usr/local/src/moin-${wiki_moin_version}": source => "/usr/local/src/moin-${wiki_moin_version}.patch", require => Util::Extract::Tar["/usr/local/src/moin-${wiki_moin_version}"], } python::setup::install { "/usr/local/src/moin-${wiki_moin_version}": require => Util::Patch["/usr/local/src/moin-${wiki_moin_version}"], } } class wiki::graphingwiki::common { if !$wiki_gwiki_revision { fail("\$wiki_graphingwiki_revision must be set.") } include svn::client svn::export { "/usr/local/src/graphingwiki": source => "http://svn.graphingwiki.webfactional.com/trunk", revision => $wiki_gwiki_revision, } } class wiki::graphingwiki inherits wiki::graphingwiki::common { python::setup::install { "/usr/local/src/graphingwiki/graphingwiki": require => Svn::Export["/usr/local/src/graphingwiki"], } } class wiki::opencollab inherits wiki::graphingwiki::common { python::setup::install { "/usr/local/src/graphingwiki/opencollab": require => Svn::Export["/usr/local/src/graphingwiki"], } } class wiki::collab inherits wiki::graphingwiki::common { python::setup::install { "/usr/local/src/graphingwiki/collab": require => Svn::Export["/usr/local/src/graphingwiki"], } } class wiki::collab::base { include wiki::graphingwiki include wiki::opencollab include wiki::collab include user::system realize(User["collab"], Group["collab"]) if $wiki_datadir { file { "${wiki_datadir}": ensure => directory, mode => 0755, owner => root, group => root, } file { "/srv/wikis": ensure => link, target => "${wiki_datadir}", require => File["${wiki_datadir}"], } } else { file { "/srv/wikis": ensure => directory, mode => 0755, owner => root, group => root, } } file { [ "/srv/wikis/collab", "/srv/wikis/collab/archive", "/srv/wikis/collab/cache", "/srv/wikis/collab/config", "/srv/wikis/collab/dockbook", "/srv/wikis/collab/htdocs", "/srv/wikis/collab/log", "/srv/wikis/collab/underlay", "/srv/wikis/collab/user", "/srv/wikis/collab/wikis", "/srv/wikis/collab/run", ]: ensure => directory, mode => 2770, owner => collab, group => collab, require => [ File["/srv/wikis"], User["collab"], Group["collab"], ], } }