Skip to content

Commit

Permalink
Make configuration file optional to make offline starting easier.
Browse files Browse the repository at this point in the history
  • Loading branch information
stonemaster committed Jun 17, 2016
1 parent 69330f8 commit 6b090c5
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions source/config.d
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import yaml;
import vibe.d;

/++
Maps values of config.yml to properties.
+/
class Config
{
private ushort port_;
private string[] bindAddresses_;
private string execProvider_;
private ushort port_ = 8080;
private string[] bindAddresses_ = [ "127.0.0.1" ];
private string execProvider_ = "stupidlocal";
private bool enableExecCache_;
private string publicDir_;
private string publicDir_ = "public";
private string googleAnalyticsId_;

private struct DockerConfig {
Expand Down Expand Up @@ -46,17 +47,22 @@ class Config

this(string configFile)
{
auto root = Loader(configFile).load();
port_ = root["port"].as!ushort();
foreach (string address; root["listen"])
bindAddresses_ ~= address;
execProvider_ = root["exec"]["driver"].as!string();
enableExecCache_ = root["exec"]["cache"].as!bool();
publicDir_ = root["public_dir"].as!string();
googleAnalyticsId_ = root["google_analytics_id"].as!string();
try {
auto root = Loader(configFile).load();
port_ = root["port"].as!ushort();
foreach (string address; root["listen"])
bindAddresses_ ~= address;
execProvider_ = root["exec"]["driver"].as!string();
enableExecCache_ = root["exec"]["cache"].as!bool();
publicDir_ = root["public_dir"].as!string();
googleAnalyticsId_ = root["google_analytics_id"].as!string();

if (execProvider_ == "docker") {
dockerConfig_ = DockerConfig(root["exec"]["config"]);
if (execProvider_ == "docker") {
dockerConfig_ = DockerConfig(root["exec"]["config"]);
}
} catch (Exception e) {
logError("Error loading config file '%s'. Falling back to defaults: %s",
configFile, e);
}
}
}

0 comments on commit 6b090c5

Please sign in to comment.