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 )