From 5f684115bdef65f387e83ad2dfb70fe6d17ed17e Mon Sep 17 00:00:00 2001 From: David Phillips Date: Sun, 16 Sep 2018 20:35:03 +1200 Subject: Rename config_file.pm to IdaliusConfig.pm --- IdaliusConfig.pm | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ config_file.pm | 83 -------------------------------------------------------- idalius.pl | 6 ++-- 3 files changed, 86 insertions(+), 86 deletions(-) create mode 100644 IdaliusConfig.pm delete mode 100644 config_file.pm diff --git a/IdaliusConfig.pm b/IdaliusConfig.pm new file mode 100644 index 0000000..0180569 --- /dev/null +++ b/IdaliusConfig.pm @@ -0,0 +1,83 @@ +package IdaliusConfig; + +use strict; +use warnings; +use Config::Tiny; + +sub parse_config +{ + my @scalar_configs = ( + 'nick', + 'username', + 'ircname', + 'server', + 'port', + 'usessl', + 'sslcert', + 'sslkey', + 'password', + 'must_id', + 'quit_msg', + 'user', + 'group', + 'url_len', + 'prefix_nick', + 'prefix'); + my @list_configs = ( + 'channels', + 'ignore', + 'admins', + 'plugins'); + my @optional_configs = ( + 'password'); + my $file = $_[0]; + my %built_config; + my $config = Config::Tiny->read($file); + + # FIXME catch undefined/missing config options + foreach my $option (@scalar_configs) { + my $value = $config->{_}->{$option}; + if (! defined $value && ! grep {$_ eq $option} @optional_configs) { + die "Option \"$option\" must be set in $file\n"; + } + $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]; + } + + # 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; + } + + # special case: timezones hash + my %timezone; + foreach (split ',', $config->{_}->{timezone}) { + my ($who, $tz) = split /=>/; + # strip outer quotes + $who =~ s/^[^']*'|'[^']*$//g; + $tz =~ s/^[^']*'|'[^']*$//g; + $timezone{$who} = $tz; + } + + $built_config{uid} = getpwnam($built_config{user}) + or die "Cannot get uid of $built_config{user}: $!\n"; + $built_config{gid} = getgrnam($built_config{group}) + or die "Cannot get gid of $built_config{group}: $!\n"; + + + $built_config{triggers} = \%triggers; + $built_config{timezone} = \%timezone; + + return %built_config; +} +1; diff --git a/config_file.pm b/config_file.pm deleted file mode 100644 index 2b7b366..0000000 --- a/config_file.pm +++ /dev/null @@ -1,83 +0,0 @@ -package config_file; - -use strict; -use warnings; -use Config::Tiny; - -sub parse_config -{ - my @scalar_configs = ( - 'nick', - 'username', - 'ircname', - 'server', - 'port', - 'usessl', - 'sslcert', - 'sslkey', - 'password', - 'must_id', - 'quit_msg', - 'user', - 'group', - 'url_len', - 'prefix_nick', - 'prefix'); - my @list_configs = ( - 'channels', - 'ignore', - 'admins', - 'plugins'); - my @optional_configs = ( - 'password'); - my $file = $_[0]; - my %built_config; - my $config = Config::Tiny->read($file); - - # FIXME catch undefined/missing config options - foreach my $option (@scalar_configs) { - my $value = $config->{_}->{$option}; - if (! defined $value && ! grep {$_ eq $option} @optional_configs) { - die "Option \"$option\" must be set in $file\n"; - } - $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]; - } - - # 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; - } - - # special case: timezones hash - my %timezone; - foreach (split ',', $config->{_}->{timezone}) { - my ($who, $tz) = split /=>/; - # strip outer quotes - $who =~ s/^[^']*'|'[^']*$//g; - $tz =~ s/^[^']*'|'[^']*$//g; - $timezone{$who} = $tz; - } - - $built_config{uid} = getpwnam($built_config{user}) - or die "Cannot get uid of $built_config{user}: $!\n"; - $built_config{gid} = getgrnam($built_config{group}) - or die "Cannot get gid of $built_config{group}: $!\n"; - - - $built_config{triggers} = \%triggers; - $built_config{timezone} = \%timezone; - - return %built_config; -} -1; diff --git a/idalius.pl b/idalius.pl index 3342291..dc90f53 100755 --- a/idalius.pl +++ b/idalius.pl @@ -7,11 +7,11 @@ use POE; use POE::Kernel; use POE::Component::IRC; use POE::Component::IRC::Plugin::NickServID; -use config_file; +use IdaliusConfig; use IRC::Utils qw(strip_color strip_formatting); my $config_file = "bot.conf"; -my %config = config_file::parse_config($config_file); +my %config = IdaliusConfig::parse_config($config_file); my %laststrike = (); my $ping_delay = 300; my %commands = (); @@ -283,7 +283,7 @@ sub irc_invite { sub irc_disconnected { _default(@_); # Dump the message - %config = config_file::parse_config($config_file); + %config = IdaliusConfig::parse_config($config_file); $irc->yield(connect => { }); } -- cgit v1.1