Projects
Kolab:16:Testing
roundcubemail-selfcontained
migrateconfig.sh
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File migrateconfig.sh of Package roundcubemail-selfcontained
#!/usr/bin/env php <?php $home = '/etc/roundcubemail/'; if (!file_exists("{$home}/config.inc.php")) { return; } // default_host/default_port -> imap_host // smtp_server/smtp_port -> smtp_host // For Kolab v3 we deal with a different format, so we first have to read the config $imap_host = null; $smtp_host = null; foreach (file("{$home}/config.inc.php") as $line) { if (strpos($line, "\$config['imap_host']") !== false) { // Already migrated return; } if (preg_match("~\\\$config\\['default_host'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $imap_host = $matches[1]; } elseif (preg_match("~\\\$config\\['default_port'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $imap_port = trim($matches[1], "'"); } elseif (preg_match("~\\\$config\\['smtp_server'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $smtp_host = $matches[1]; } elseif (preg_match("~\\\$config\\['smtp_port'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $smtp_port = trim($matches[1], "'"); } } if (!empty($imap_port) && !empty($imap_host)) { if (strpos($imap_host, ':' . $imap_port) === false) { $imap_host .= ':' . $imap_port; } if (strpos($imap_host, '://') === false) { switch ($imap_port) { case 993: case 9993: $imap_host = 'ssl://' . $imap_host; break; } } } if (!empty($smtp_port) && !empty($smtp_host)) { if (strpos($smtp_host, ':' . $smtp_port) === false) { $smtp_host .= ':' . $smtp_port; } if (strpos($smtp_host, '://') === false) { switch ($smtp_port) { case 587: $smtp_host = 'tls://' . $smtp_host; break; case 465: $smtp_host = 'ssl://' . $smtp_host; break; } } } // TODO: removed `port` option from `ldap_public` array (non-standard port can be set via `host`) // TODO: removed `use_tls` option from `ldap_public` array (use tls:// prefix in `host`) // For Kolab v4 we can just replace strings as we have a "constant" content $replace = [ "\$config['default_host'] = (getenv('IMAP_TLS') == \"true\" ? \"ssl://\" : \"\") . getenv('IMAP_HOST');" => "\$config['imap_host'] = (getenv('IMAP_TLS') == \"true\" ? \"ssl://\" : \"\") . getenv('IMAP_HOST') . ':' . getenv('IMAP_PORT');", "\$config['default_port'] = getenv('IMAP_PORT');" => '', "\$config['smtp_server'] = \"tls://\" . getenv('SUBMISSION_HOST');" => "\$config['smtp_host'] = \"tls://\" . getenv('SUBMISSION_HOST') . ':' . getenv('SUBMISSION_PORT');", "\$config['smtp_server'] = getenv('SUBMISSION_HOST');" => "\$config['smtp_host'] = getenv('SUBMISSION_HOST') . ':' . getenv('SUBMISSION_PORT');", "\$config['smtp_port'] = getenv('SUBMISSION_PORT');" => '', ]; $content = ''; foreach (file("{$home}/config.inc.php") as $line) { $line = str_replace(array_keys($replace), array_values($replace), $line); if ($imap_host && strpos($line, "\$config['default_host']") !== false) { $content .= " \$config['imap_host'] = '{$imap_host}';\n"; } elseif ($smtp_host && strpos($line, "\$config['smtp_server']") !== false) { $content .= " \$config['smtp_host'] = '{$smtp_host}';\n"; } elseif (!preg_match("~\\\$config\\['(default_port|smtp_port)'\\]~", $line)) { $content .= $line; } } file_put_contents("{$home}/config.inc.php", $content); // managesieve_usetls/managesieve_port $sieve_host = null; foreach (file("{$home}/managesieve.inc.php") as $line) { if (preg_match("~\\\$config\\['managesieve_host'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $sieve_host = $matches[1]; } elseif (preg_match("~\\\$config\\['managesieve_port'\\]\s*=\s*['\"]?([^'\";]*)['\"]?~", $line, $matches)) { $sieve_port = trim($matches[1], "'"); } elseif (preg_match("~\\\$config\\['managesieve_usetls'\\]\s*=\s*true~", $line, $matches)) { $sieve_tls = true; } } if (!empty($sieve_host)) { if (!empty($sieve_port) && strpos($sieve_host, ":$sieve_port") === false) { $sieve_host .= ':' . $sieve_port; } if (!empty($sieve_tls) && strpos($sieve_host, "://") === false) { $sieve_host = 'tls://' . $sieve_host; } } $replace = [ "\$config['managesieve_host'] = str_replace(\"ssl://\", \"\", getenv('IMAP_HOST'));" => "\$config['managesieve_host'] = str_replace(\"ssl://\", \"\", getenv('IMAP_HOST')) . ':4190';", ]; $content = ''; foreach (file("{$home}/managesieve.inc.php") as $line) { $line = str_replace(array_keys($replace), array_values($replace), $line); if ($sieve_host && strpos($line, "\$config['managesieve_host'] = '") !== false) { $content .= " \$config['managesieve_host'] = '{$sieve_host}';\n"; } elseif (!preg_match("~\\\$config\\['(managesieve_port|managesieve_usetls)'\\]~", $line)) { $content .= $line; } } file_put_contents("{$home}/managesieve.inc.php", $content);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.