aboutsummaryrefslogtreecommitdiff
path: root/sb_config.pm
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2017-03-05 22:19:17 +1300
committerDavid Phillips <david@sighup.nz>2017-03-05 22:19:17 +1300
commit475075a4615d48fab79fc23ded5e08f9735864ec (patch)
tree1d6ea72c0fcb26cee6ec27cf3403c9fecc39d349 /sb_config.pm
downloadidalius-475075a4615d48fab79fc23ded5e08f9735864ec.tar.xz
Initial dump
Diffstat (limited to 'sb_config.pm')
-rw-r--r--sb_config.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/sb_config.pm b/sb_config.pm
new file mode 100644
index 0000000..f4e851e
--- /dev/null
+++ b/sb_config.pm
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+
+package sb_config;
+
+use strict;
+use warnings;
+use Config::Tiny;
+
+sub parse_config
+{
+ my @scalar_configs = ('nick', 'username', 'ircname', 'server', 'password');
+ my @list_configs = ('channels', 'ignore', 'admins');
+ my $file = $_[0];
+ my %built_config;
+ my $config = Config::Tiny->read($file);
+
+ # FIXME catch undefined/missing config options
+ foreach my $option (@scalar_configs) {
+ $built_config{$option} = $config->{_}->{$option};
+ }
+
+ foreach my $option (@list_configs) {
+ my $vals = $config->{_}->{$option};
+ $vals =~ s/^\s+|\s+$//g;
+ @built_config{$option} = [split /\s*,\s*/, $vals];
+ }
+
+ return %built_config;
+}
+1;