aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mediawiki/manifests/instance.pp
blob: 4800114aa48b609fedf2c5b59c5728f3cbaaf735 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
define mediawiki::instance( $title,
                            $wiki_settings = '',
                            $skinsdir = '/usr/share/mediawiki/skins') {

    include mediawiki::base

    $path = $name
    $lang = $name
    $wiki_root = "$mediawiki::base::root/$path"
    $db_name = "mediawiki_$name"
    $db_user = $mediawiki::base::user
    $db_password = $mediawiki::config::pgsql_password
    $secret_key = $mediawiki::config::secretkey
    $ldap_password = $mediawiki::config::ldap_password

    file { $wiki_root:
        ensure => directory
    }

    file { "$wiki_root/skins":
        ensure  => link,
        target  => $skinsdir,
        require => File[$wiki_root],
    }

    exec { "wikicreate $name":
        command => "mediawiki-create $wiki_root",
        cwd     => $mediawiki::base::root,
        require => [File[$wiki_root],Package['mediawiki-minimal']],
        creates => "$wiki_root/index.php",
    }

    postgresql::remote_database { $db_name:
        user            => $db_user,
        callback_notify => Exec["deploy_db $name"],
    }

    exec { "deploy_db $name":
        command     => "php /usr/local/bin/init_wiki.php $wiki_root",
        refreshonly => true,
        onlyif      => "test -d $wiki_root/config",
    }

    file { "$wiki_root/LocalSettings.php":
        owner   => 'apache',
        mode    => '0600',
        content => template('mediawiki/LocalSettings.php'),
        # if LocalSettings is created first, the wikicreate script
        # do not create a confg directory, and so it doesn't
        # trigger deploy_db exec
        require => Exec["wikicreate $name"],
    }
}