RTx-Foundry
view release on metacpan or search on metacpan
sbin/foundry-setup view on Meta::CPAN
sub postfix_conf {
return unless -e "/usr/local/sbin/postfix";
open my $MAIN, '>>', '/usr/local/etc/postfix/main.cf';
print $MAIN qq(
alias_database = hash:/etc/aliases, hash:/etc/mail/sympa_aliases
alias_maps = ${db_module}:/usr/local/etc/postfix/aliases.cf, hash:/etc/mail/sympa_aliases, hash:/etc/aliases
);
open my $ALIASES, '>', '/usr/local/etc/postfix/aliases.cf';
print $ALIASES qq(
user=${db_dba_user}
password=${db_dba_password}
dbname=rt3
table=users
select_field=emailaddress
where_field=name
hosts=${db_host}
);
}
sub sympa_conf {
return unless -e "/usr/local/etc/sympa.conf";
open my $SYMPA, '>>', '/usr/local/etc/sympa.conf';
print $SYMPA qq(
# Foundry-specific settings
dark_color #0F6080
selected_color #0F6080
light_color #D3DCE3
shaded_color #EEEEEE
bg_color #C4E1F0
text_color #000000
);
}
sub foundry_conf {
my $conf = "/usr/local/etc/foundry.conf";
my @in_lines;
if (open my $IN, $conf) {
@in_lines = grep {
my $line = $_;
!grep $line =~ /\$ENV\{$_\}/, +VARS
} <$IN>;
close $IN;
}
no strict 'refs';
no warnings 'uninitialized';
open my $OUT, '>', $conf or die $!;
print $OUT (
@in_lines,
map {
"\$ENV{$_}" .
("\t" x (2 - int((length($_)-1) / 8))) .
"= '${lc$_}';\n"
} +VARS,
);
close $OUT;
chown 0600, $conf;
print "===> $conf successfully written.\n";
}
sub pam_conf {
my %params = (
host => $db_host,
user => $db_dba_user,
passwd => $db_dba_password,
db => 'rt3',
table => 'Users',
usercolumn => 'Name',
passwdcolumn => 'Password',
crypt => 'md5',
);
my %keys_pg = (
db => 'database',
usercolumn => 'user_column',
passwdcolumn => 'pwd_column',
crypt => 'pw_type',
);
my $params = '';
$params = join('', map " $_=$params{$_}", sort keys %params)
if $db_pam_module eq 'pam_mysql';
@params{values(%keys_pg)} = delete @params{keys(%keys_pg)}
if $db_pam_module eq 'pam_pgsql';
my @conf_lines = (
"auth required $db_pam_module.so$params\n",
"account required pam_permit.so\n",
"password required $db_pam_module.so$params\n",
"session required pam_permit.so\n",
);
my $service = 'sshdcvs';
my $pam_d = "/usr/local/etc/pam.d";
my $pam_conf = "/etc/pam.conf";
my $pam_module_conf = "/etc/$db_pam_module.conf";
if (-e $pam_conf) {
open my $IN, $pam_conf or die $!;
my @in_lines = grep !/^(?:# )?$service\s+/, <$IN>;
close $IN;
open my $OUT, '>', $pam_conf or die $!;
print $OUT (
@in_lines,
"# $service: added by $0 at " . localtime() . $/,
map "$service $_", @conf_lines,
);
close $OUT;
print "===> $pam_conf successfully written.\n";
}
elsif (-d $pam_d) {
open my $OUT, '>', "$pam_d/$service" or die $!;
print $OUT @conf_lines;
close $OUT;
print "===> $pam_d/$service successfully written.\n";
( run in 1.061 second using v1.01-cache-2.11-cpan-5511b514fd6 )