mirror of
https://codeberg.org/icewind/nextcloud-config-parser.git
synced 2026-06-03 08:34:13 +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,
|
NoUsername,
|
||||||
#[error("no password set")]
|
#[error("no password set")]
|
||||||
NoPassword,
|
NoPassword,
|
||||||
#[error("no database name")]
|
#[error("no data directory")]
|
||||||
NoName,
|
NoDataDirectory,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
#[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;
|
*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
|
let verify = parsed["dbdriveroptions"][1014] // MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
|
||||||
.clone()
|
.clone()
|
||||||
|
|
@ -255,7 +255,7 @@ fn parse_db_options(parsed: &Value) -> Result<Database> {
|
||||||
*connect_port = port as u16;
|
*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 {
|
let ssl_options = if disable_ssl {
|
||||||
SslOptions::Disabled
|
SslOptions::Disabled
|
||||||
|
|
@ -271,9 +271,11 @@ fn parse_db_options(parsed: &Value) -> Result<Database> {
|
||||||
ssl_options,
|
ssl_options,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
Some("sqlite3") => {
|
Some("sqlite3" | "sqlite") => {
|
||||||
let data_dir = parsed["datadirectory"].as_str().ok_or(DbError::NoName)?;
|
let data_dir = parsed["datadirectory"]
|
||||||
let db_name = parsed["dbname"].as_str().ok_or(DbError::NoName)?;
|
.as_str()
|
||||||
|
.ok_or(DbError::NoDataDirectory)?;
|
||||||
|
let db_name = parsed["dbname"].as_str().unwrap_or("owncloud");
|
||||||
Ok(Database::Sqlite {
|
Ok(Database::Sqlite {
|
||||||
database: format!("{}/{}.db", data_dir, db_name).into(),
|
database: format!("{}/{}.db", data_dir, db_name).into(),
|
||||||
})
|
})
|
||||||
|
|
@ -823,3 +825,14 @@ fn test_parse_postgres_fqdn() {
|
||||||
config.database.into(),
|
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