EMDIS-ECS
view release on metacpan or search on metacpan
script/ecs_setup view on Meta::CPAN
unless exists $cfg->{INBOX_OAUTH_TOKEN_CMD};
ask('INBOX_MAX_MSG_SIZE');
}
ask('INBOX_FOLDER')
if $cfg->{INBOX_PROTOCOL} =~ /imap/i;
ask('INBOX_DIRECTORY')
if $cfg->{INBOX_PROTOCOL} =~ /directory/i;
if($cfg->{INBOX_PROTOCOL} =~ /pop3/i or $cfg->{INBOX_PROTOCOL} =~ /imap/i) {
ask('INBOX_USE_SSL');
ask('INBOX_USE_STARTTLS');
}
$cfg->{AMQP_BROKER_URL} = 'amqps://example.url:5671' unless $cfg->{AMQP_BROKER_URL};
$cfg->{AMQP_VHOST} = '' unless $cfg->{AMQP_VHOST};
$cfg->{AMQP_ADDR_META} = 'emdis.xx.meta' unless $cfg->{AMQP_ADDR_META};
$cfg->{AMQP_ADDR_MSG} = 'emdis.xx.msg' unless $cfg->{AMQP_ADDR_MSG};
$cfg->{AMQP_ADDR_DOC} = 'emdis.xx.doc' unless $cfg->{AMQP_ADDR_DOC};
$cfg->{AMQP_DEBUG_LEVEL} = '0' unless $cfg->{AMQP_DEBUG_LEVEL};
$cfg->{AMQP_CMD_SEND} = 'ecs_amqp_send.py' unless $cfg->{AMQP_CMD_SEND};
$cfg->{AMQP_SEND_TIMELIMIT} = '60' unless $cfg->{AMQP_SEND_TIMELIMIT};
$cfg->{AMQP_CMD_RECV} = 'ecs_amqp_recv.py' unless $cfg->{AMQP_CMD_RECV};
$cfg->{AMQP_RECV_TIMEOUT} = '5' unless $cfg->{AMQP_RECV_TIMEOUT};
$cfg->{AMQP_RECV_TIMELIMIT} = '300' unless $cfg->{AMQP_RECV_TIMELIMIT};
$cfg->{AMQP_USERNAME} = 'username' unless $cfg->{AMQP_USERNAME};
$cfg->{AMQP_PASSWORD} = 'password' unless $cfg->{AMQP_PASSWORD};
$cfg->{AMQP_TRUSTSTORE} = 'ca-cert.pem' unless $cfg->{AMQP_TRUSTSTORE};
$cfg->{AMQP_SSLCERT} = 'client-cert.pem' unless $cfg->{AMQP_SSLCERT};
$cfg->{AMQP_SSLKEY} = 'client-key.pem' unless $cfg->{AMQP_SSLKEY};
$cfg->{AMQP_SSLPASS} = 'password' unless $cfg->{AMQP_SSLPASS};
ask('ENABLE_AMQP');
if(is_yes($cfg->{ENABLE_AMQP})) {
ask('AMQP_BROKER_URL');
ask('AMQP_VHOST');
ask('AMQP_ADDR_META');
ask('AMQP_ADDR_MSG');
ask('AMQP_ADDR_DOC');
ask('AMQP_DEBUG_LEVEL');
ask('AMQP_CMD_SEND');
ask('AMQP_SEND_TIMELIMIT');
ask('AMQP_CMD_RECV');
ask('AMQP_RECV_TIMEOUT');
ask('AMQP_RECV_TIMELIMIT');
if(yes($term->readline("\nUse (SASL) username/password authentication to AMQP broker [Y/n]? "))) {
$cfg->{CFG_AMQP_SASL} = 1;
ask('AMQP_USERNAME');
ask('AMQP_PASSWORD');
}
if(yes($term->readline("\nUse SSL/TLS encryption for AMQP [Y/n]? "))) {
$cfg->{CFG_AMQP_SSL} = 1;
ask('AMQP_TRUSTSTORE');
if(yes($term->readline("\nUse client-side SSL/TLS certificate for AMQP [Y/n]? "))) {
$cfg->{CFG_AMQP_SSL_CLIENT} = 1;
ask('AMQP_SSLCERT');
ask('AMQP_SSLKEY');
ask('AMQP_SSLPASS');
}
}
}
$cfg->{GPG_HOMEDIR} = '/home/username/gpg'
unless $cfg->{GPG_HOMEDIR};
$cfg->{GPG_KEYID} = '0x00000000'
unless $cfg->{GPG_KEYID};
$cfg->{GPG_PASSPHRASE} = ''
unless $cfg->{GPG_PASSPHRASE};
if(yes($term->readline("\nConfigure GnuPG encryption [Y/n]? ")))
{
$cfg->{CFG_GPG} = 1;
ask('GPG_HOMEDIR');
ask('GPG_KEYID');
ask('GPG_PASSPHRASE');
}
$cfg->{PGP_HOMEDIR} = '/home/username/pgp'
unless $cfg->{PGP_HOMEDIR};
$cfg->{PGP_KEYID} = '0x00000000'
unless $cfg->{PGP_KEYID};
$cfg->{PGP_PASSPHRASE} = 'pgpgp'
unless $cfg->{PGP_PASSPHRASE};
if(yes($term->readline("\nConfigure PGP encryption [Y/n]? ")))
{
$cfg->{CFG_PGP} = 1;
ask('PGP_HOMEDIR');
ask('PGP_KEYID');
ask('PGP_PASSPHRASE');
}
print $OUT "\nOutbound mail storage options are:";
print $OUT "\nm = maildrop";
print $OUT "\nt = 'to_XX' and 'from_XX' directories";
my $send_option = ($term->readline("\nOutbound mail storage option [t]: "));
if( $send_option !~ /m/i ){
$send_option = 't';
$cfg->{ECS_TO_DIR} = 'mboxes/to_dir' unless $cfg->{ECS_TO_DIR};
$cfg->{ECS_FROM_DIR} = 'mboxes/from_dir' unless $cfg->{ECS_FROM_DIR};
ask('ECS_TO_DIR');
ask('ECS_FROM_DIR');
}
ask('LOG_LEVEL');
ask('MAIL_LEVEL');
# save config file
print "\nOutput file: $cfg->{CFG_FILE}\n";
if(yes($term->readline("Save to file [Y/n]? ")))
{
save_config();
print $OUT "\nECS configuration saved to file: $opt_config\n";
print $OUT "Edit this file to fine tune the ECS configuration.\n";
print $OUT "Don't forget to set the environment variable ECS_CONFIG_FILE\n"
. "(e.g., in /etc/profile, export ECS_CONFIG_FILE=$opt_config).\n";
}
$cfg->_massage_config();
# create subdirectories
if(yes($term->readline("\nCreate ECS_DAT_DIR subdirectories [Y/n]? ")))
{
print "\n";
if(chk_mkdir('ECS_DAT_DIR'))
{
chk_mkdir('ECS_TMP_DIR');
if(chk_mkdir('ECS_MBX_DIR'))
{
chk_mkdir('ECS_MBX_AMQP_STAGING_DIR') if is_yes($cfg->{ENABLE_AMQP});
chk_mkdir('ECS_MBX_IN_DIR');
chk_mkdir('ECS_MBX_IN_FML_DIR');
chk_mkdir('ECS_MBX_OUT_DIR');
chk_mkdir('ECS_MBX_TRASH_DIR');
chk_mkdir('ECS_MBX_STORE_DIR');
}
if ( $send_option eq 't' ) {
chk_mkdir('ECS_TO_DIR');
chk_mkdir('ECS_FROM_DIR');
}
chk_mkdir('ECS_DRP_DIR');
}
( run in 0.518 second using v1.01-cache-2.11-cpan-df04353d9ac )