<?php

# This script transforms Debian's dbconfig-common PHP-format include files
# into a form usable by The Arsse. This is necessary because The Arsse
# supports defining configuration parameters for all supported database types
# at once, using separate keys for the different types

$dbconfpath = "/var/lib/arsse/dbconfig.inc"; // path defined in postinst script

if (file_exists($dbconfpath)) {
    require_once "/var/lib/arsse/dbconfig.inc";
    $dbtype = $dbtype ?? "";
    // the returned configuration depends on the $dbtype
    if ($dbtype === "sqlite3") {
        $conf = ['dbDriver' => "sqlite3"];
        if (strlen((string) $basepath) && strlen((string) $dbname)) {
            $conf['dbSQLite3File'] = "$basepath/$dbname";
        }
    } elseif ($dbtype === "pgsql") {
        $conf = [
            'dbDriver' => "postgresql",
            'dbPostgreSQLHost' => $dbserver ?? "",
            'dbPostgreSQLUser' => $dbuser ?? "arsse",
            'dbPostgreSQLPass' => $dbpass ?? "",
            'dbPostgreSQLPort' => (int) $dbport ?: 5432,
            'dbPostgreSQLDb'   => $dbname ?? "arsse",
        ];
    } elseif ($dbtype === "mysql") {
        $conf = [
            'dbDriver' => "mysql",
            'dbMySQLHost' => $dbserver ?? "",
            'dbMySQLUser' => $dbuser ?? "arsse",
            'dbMySQLPass' => $dbpass ?? "",
            'dbMySQLPort' => (int) $dbport ?: 3306,
            'dbMySQLDb'   => $dbname ?? "arsse",
        ];
    } else {
        throw new \Exception("Debian dbconfig-common configuration file $dbconfpath is invalid");
    }
    return $conf;
} else {
    // if no configuration file exists simply return an empty array
    return [];
}