# Based on https://wiki.koumbit.net/QwebIrc class qwebirc($ircserver = 'irc.myserver.com', $ircport = '6667', $realname = 'http://moo.com/', $webirc_mode = 'None', $base_url = 'http://foo.foo.org/', $network_name = 'FooNet', $sslport = false) { package { [ 'python-twisted', 'python-openssl', 'python-simplejson', 'mercurial' ]: ensure => present, } group { "qwebirc": ensure => present, allowdupe => false, } user { "qwebirc": ensure => present, allowdupe => false, gid => 'qwebirc', require => Group['qwebirc'], } file { '/etc/init.d/qwebirc': ensure => present, owner => root, group => root, mode => 0755, source => 'puppet:///modules/qwebirc/qwebirc-init.d.sh', require => Vcsrepo['/var/lib/qwebirc'], } vcsrepo { "/var/lib/qwebirc": ensure => present, provider => hg, source => 'https://bitbucket.org/qwebirc/qwebirc', revision => '19d6068a1aa6', owner => 'qwebirc', group => 'qwebirc', require => [ User['qwebirc'], Group['qwebirc'], Package['mercurial'] ], notify => Service['qwebirc'], } file { '/var/lib/qwebirc/config.py': ensure => present, owner => 'qwebirc', group => 'qwebirc', mode => 0640, content => template('qwebirc/config.py.erb'), require => Vcsrepo['/var/lib/qwebirc'], notify => Service['qwebirc'], } # See http://hg.qwebirc.org/qwebirc/issue/152/ssl file { '/var/lib/qwebirc/qwebirc/ircclient.py': ensure => present, owner => 'qwebirc', group => 'qwebirc', mode => 0640, source => 'puppet:///modules/qwebirc/ircclient-ssl.py', require => Vcsrepo['/var/lib/qwebirc'], notify => Service['qwebirc'], } service { 'qwebirc': enable => true, ensure => running, hasrestart => true, hasstatus => true, require => [ File['/etc/init.d/qwebirc', '/var/lib/qwebirc/config.py', '/var/lib/qwebirc/qwebirc/ircclient.py'], Package['python-twisted'] ], } }