1
0
mirror of https://github.com/ohwgiles/laminar.git synced 2026-11-02 00:29:32 +00:00

remove iniparser, laminar.conf must be sourced

This commit is contained in:
Oliver Giles
2015-09-19 14:36:03 +02:00
parent cf10d5c795
commit f260b7813c
6 changed files with 108 additions and 40 deletions

View File

@@ -18,9 +18,9 @@
///
#include "laminar.h"
#include "server.h"
#include "conf.h"
#include <sys/wait.h>
#include <iniparser.h>
#include <kj/debug.h>
#include <boost/filesystem.hpp>
@@ -61,11 +61,8 @@ constexpr const char* BASE_CFG_DIR = "/home/og/dev/laminar/cfg";
typedef std::string str;
Laminar::Laminar(const char* configFile) {
// read params from config file
conf = iniparser_load(configFile);
KJ_REQUIRE(conf != nullptr, "Could not parse", configFile);
homeDir = iniparser_getstring(conf, ":LAMINAR_HOME", "/var/lib/laminar");
Laminar::Laminar() {
homeDir = getenv("LAMINAR_HOME") ?: "/var/lib/laminar";
db = new Database((fs::path(homeDir)/"laminar.sqlite").string().c_str());
// Prepare database for first use
@@ -253,14 +250,13 @@ void Laminar::sendStatus(LaminarClient* client) {
}
Laminar::~Laminar() {
iniparser_freedict(conf);
delete db;
delete srv;
}
void Laminar::run() {
const char* listen_rpc = iniparser_getstring(conf, ":LAMINAR_BIND_RPC", INTADDR_RPC_DEFAULT);
const char* listen_http = iniparser_getstring(conf, ":LAMINAR_BIND_HTTP", INTADDR_HTTP_DEFAULT);
const char* listen_rpc = getenv("LAMINAR_BIND_RPC") ?: INTADDR_RPC_DEFAULT;
const char* listen_http = getenv("LAMINAR_BIND_HTTP") ?: INTADDR_HTTP_DEFAULT;
srv = new Server(*this, listen_rpc, listen_http);
@@ -275,30 +271,25 @@ void Laminar::stop() {
bool Laminar::loadConfiguration() {
NodeMap nm;
fs::directory_iterator dit(fs::path(homeDir)/"cfg"/"nodes");
for(fs::directory_entry& it : dit) {
if(!fs::is_directory(it.status()))
continue;
fs::path nodeCfg = fs::path(homeDir)/"cfg"/"nodes";
fs::directory_entry config(it.path()/"config");
if(!fs::is_regular_file(config.status()))
continue;
if(fs::is_directory(nodeCfg)) {
fs::directory_iterator dit(nodeCfg);
for(fs::directory_entry& it : dit) {
if(!fs::is_directory(it.status()))
continue;
dictionary* ini = iniparser_load(config.path().string().c_str());
if(!ini) {
KJ_LOG(ERROR, "Could not parse node config", config.path().string());
continue;
fs::directory_entry config(it.path()/"config");
if(!fs::is_regular_file(config.status()))
continue;
StringMap conf = parseConfFile(config.path().string().c_str());
Node node;
node.name = it.path().filename().string();
node.numExecutors = conf.get<int>("EXECUTORS", 6);
nm.emplace(node.name, std::move(node));
}
int executors = iniparser_getint(ini, ":EXECUTORS", 6);
Node node;
node.name = it.path().filename().string();
node.numExecutors = executors;
nm.emplace(node.name, std::move(node));
iniparser_freedict(ini);
}
if(nm.empty()) {