aboutsummaryrefslogtreecommitdiff
path: root/sb_config.pm
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2017-03-17 15:52:59 +1300
committerDavid Phillips <david@sighup.nz>2017-03-17 16:04:00 +1300
commit0c48ea15d4fbaa687ec068c610547d1c317da63c (patch)
treea8d491a90a59623547f81059295dd35464bc349d /sb_config.pm
parentbc0601bd2c28395f68613fd9966ea318ff93016c (diff)
downloadidalius-0c48ea15d4fbaa687ec068c610547d1c317da63c.tar.xz
Keep output in same order as trigger input
Diffstat (limited to 'sb_config.pm')
-rw-r--r--sb_config.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/sb_config.pm b/sb_config.pm
index 5440f0c..dcff683 100644
--- a/sb_config.pm
+++ b/sb_config.pm
@@ -9,7 +9,7 @@ use Config::Tiny;
sub parse_config
{
my @scalar_configs = ('nick', 'username', 'ircname', 'server', 'port', 'password', 'must_id');
- my @list_configs = ('channels', 'ignore', 'admins', 'triggers');
+ my @list_configs = ('channels', 'ignore', 'admins');
my $file = $_[0];
my %built_config;
my $config = Config::Tiny->read($file);
@@ -25,6 +25,18 @@ sub parse_config
@built_config{$option} = [split /\s*,\s*/, $vals];
}
+ # special case: triggers hash
+ my %triggers;
+ foreach (split ',', $config->{_}->{triggers}) {
+ my ($match, $response) = split /=>/;
+ # strip outer quotes
+ $match =~ s/^[^']*'|'[^']*$//g;
+ $response =~ s/^[^']*'|'[^']*$//g;
+ $triggers{$match} = $response;
+ }
+
+ $built_config{triggers} = \%triggers;
+
return %built_config;
}
1;