1 |
class ii { |
class ii { |
2 |
class base { |
class base { |
3 |
package { ["ii", "perl-Proc-Daemon"]: } |
package {['ii', |
4 |
|
'perl-Proc-Daemon']: } |
5 |
|
|
6 |
file { "/var/lib/ii/": |
file { '/var/lib/ii/': |
7 |
ensure => directory, |
ensure => directory, |
8 |
owner => nobody, |
owner => 'nobody', |
9 |
} |
} |
10 |
} |
} |
11 |
|
|
12 |
define bot($server = 'irc.freenode.net', |
define bot( $server = 'irc.freenode.net', |
13 |
$channel) { |
$channel) { |
14 |
|
|
15 |
$nick = $name |
$nick = $name |
16 |
|
|
18 |
# a custom wrappper is needed since ii do not fork in the |
# a custom wrappper is needed since ii do not fork in the |
19 |
# background, and bash is not able to properly do it |
# background, and bash is not able to properly do it |
20 |
local_script { "ii_$nick": |
local_script { "ii_$nick": |
21 |
content => template("ii/ii_wrapper.pl"), |
content => template('ii/ii_wrapper.pl'), |
22 |
require => Class['ii::base'], |
require => Class['ii::base'], |
23 |
} |
} |
24 |
|
|
25 |
service { 'ii': |
service { 'ii': |
26 |
provider => base, |
provider => base, |
27 |
start => "/usr/local/bin/ii_$nick", |
start => "/usr/local/bin/ii_$nick", |
28 |
require => Local_script["ii_$nick"], |
require => Local_script["ii_$nick"], |
29 |
} |
} |
30 |
|
|
31 |
exec { "join channel $nick": |
exec { "join channel $nick": |
32 |
command => "echo '/j $channel' > /var/lib/ii/$nick/$server/in", |
command => "echo '/j $channel' > /var/lib/ii/$nick/$server/in", |
33 |
user => nobody, |
user => 'nobody', |
34 |
creates => "/var/lib/ii/$nick/$server/$channel/in", |
creates => "/var/lib/ii/$nick/$server/$channel/in", |
35 |
require => Service['ii'], |
require => Service['ii'], |
36 |
} |
} |