mirror of
https://github.com/abraunegg/onedrive
synced 2024-05-15 20:26:53 +02:00
alert when no config file is found
This commit is contained in:
parent
53d5d57678
commit
3489827431
40
src/config.d
40
src/config.d
|
@ -6,9 +6,14 @@ struct Config
|
|||
|
||||
this(string[] filenames...)
|
||||
{
|
||||
bool found = false;
|
||||
foreach (filename; filenames) {
|
||||
load(filename);
|
||||
if (exists(filename)) {
|
||||
found = true;
|
||||
load(filename);
|
||||
}
|
||||
}
|
||||
if (!found) throw new Exception("No config file found");
|
||||
}
|
||||
|
||||
string get(string key)
|
||||
|
@ -23,19 +28,17 @@ struct Config
|
|||
|
||||
private void load(string filename)
|
||||
{
|
||||
if (exists(filename)) {
|
||||
auto file = File(filename, "r");
|
||||
auto r = regex("(?:^\\s*)(\\w+)(?:\\s*=\\s*\")(.*)(?:\"\\s*$)");
|
||||
foreach (line; file.byLine()) {
|
||||
auto c = line.matchFirst(r);
|
||||
if (!c.empty) {
|
||||
c.popFront(); // skip the whole match
|
||||
string key = c.front.dup;
|
||||
c.popFront();
|
||||
values[key] = c.front.dup;
|
||||
} else {
|
||||
writeln("Malformed config line: ", line);
|
||||
}
|
||||
auto file = File(filename, "r");
|
||||
auto r = regex("(?:^\\s*)(\\w+)(?:\\s*=\\s*\")(.*)(?:\"\\s*$)");
|
||||
foreach (line; file.byLine()) {
|
||||
auto c = line.matchFirst(r);
|
||||
if (!c.empty) {
|
||||
c.popFront(); // skip the whole match
|
||||
string key = c.front.dup;
|
||||
c.popFront();
|
||||
values[key] = c.front.dup;
|
||||
} else {
|
||||
writeln("Malformed config line: ", line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,3 +49,12 @@ unittest
|
|||
auto cfg = Config("empty", "onedrive.conf");
|
||||
assert(cfg.get("sync_dir") == "~/OneDrive");
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
try {
|
||||
auto cfg = Config("empty");
|
||||
assert(0);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue