mirror of
https://codeberg.org/icewind/nextcloud-config-parser.git
synced 2026-06-03 16:44:09 +02:00
use default database name if none is set in the config
This commit is contained in:
parent
4b8c9530fb
commit
0b6614c6e0
3 changed files with 27 additions and 7 deletions
|
|
@ -115,8 +115,8 @@ pub enum DbError {
|
|||
NoUsername,
|
||||
#[error("no password set")]
|
||||
NoPassword,
|
||||
#[error("no database name")]
|
||||
NoName,
|
||||
#[error("no data directory")]
|
||||
NoDataDirectory,
|
||||
}
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
|
|
|
|||
23
src/nc.rs
23
src/nc.rs
|
|
@ -178,7 +178,7 @@ fn parse_db_options(parsed: &Value) -> Result<Database> {
|
|||
*connect_port = port as u16;
|
||||
}
|
||||
}
|
||||
let database = parsed["dbname"].as_str().ok_or(DbError::NoName)?;
|
||||
let database = parsed["dbname"].as_str().unwrap_or("owncloud");
|
||||
|
||||
let verify = parsed["dbdriveroptions"][1014] // MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
|
||||
.clone()
|
||||
|
|
@ -255,7 +255,7 @@ fn parse_db_options(parsed: &Value) -> Result<Database> {
|
|||
*connect_port = port as u16;
|
||||
}
|
||||
}
|
||||
let database = parsed["dbname"].as_str().ok_or(DbError::NoName)?;
|
||||
let database = parsed["dbname"].as_str().unwrap_or("owncloud");
|
||||
|
||||
let ssl_options = if disable_ssl {
|
||||
SslOptions::Disabled
|
||||
|
|
@ -271,9 +271,11 @@ fn parse_db_options(parsed: &Value) -> Result<Database> {
|
|||
ssl_options,
|
||||
})
|
||||
}
|
||||
Some("sqlite3") => {
|
||||
let data_dir = parsed["datadirectory"].as_str().ok_or(DbError::NoName)?;
|
||||
let db_name = parsed["dbname"].as_str().ok_or(DbError::NoName)?;
|
||||
Some("sqlite3" | "sqlite") => {
|
||||
let data_dir = parsed["datadirectory"]
|
||||
.as_str()
|
||||
.ok_or(DbError::NoDataDirectory)?;
|
||||
let db_name = parsed["dbname"].as_str().unwrap_or("owncloud");
|
||||
Ok(Database::Sqlite {
|
||||
database: format!("{}/{}.db", data_dir, db_name).into(),
|
||||
})
|
||||
|
|
@ -823,3 +825,14 @@ fn test_parse_postgres_fqdn() {
|
|||
config.database.into(),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parse_config_sqlite_default_db() {
|
||||
let config = config_from_file("tests/configs/sqlite_default_db.php");
|
||||
assert_debug_equal(
|
||||
&Database::Sqlite {
|
||||
database: "/nc/data/owncloud.db".into(),
|
||||
},
|
||||
&config.database,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
7
tests/configs/sqlite_default_db.php
Normal file
7
tests/configs/sqlite_default_db.php
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
$CONFIG = [
|
||||
'overwrite.cli.url' => 'https://cloud.example.com',
|
||||
'dbtype' => 'sqlite',
|
||||
'datadirectory' => '/nc/data'
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue