From 78ff8b2919f28ad38a362bc84aceedd717a6e18c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 17 Mar 2016 22:57:24 -0400 Subject: [PATCH] init: Combined initializeData and initializeRules --- src/init.cpp | 50 ++++++++++++++++---------------------------------- src/timew.cpp | 16 +--------------- src/timew.h | 3 +-- 3 files changed, 18 insertions(+), 51 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 5670f00c..b9481ea9 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -53,7 +53,7 @@ bool lightweightVersionCheck (const std::vector & args) } //////////////////////////////////////////////////////////////////////////////// -void initializeData ( +void initializeDataAndRules ( Database& database, Rules& rules, Log& log) @@ -104,10 +104,24 @@ void initializeData ( throw format ("Database is not readable at '{1}'", dbLocation._data); } + // TODO Load rule grammar. +/* + File ruleFile ("./rule.grammar"); + Grammar ruleGrammar; + ruleGrammar.debug (debug); + ruleGrammar.loadFromFile (ruleFile); + + // Instantiate the parser. + LR0 ruleParser; + ruleParser.debug (debug); + ruleParser.initialize (ruleGrammar); +*/ + // Load the configuration data. File configFile (dbLocation); configFile += "timewarrior.cfg"; configFile.create (0600); + rules.load (configFile._data); // This value is not written out to disk, as there would be no point. Having // located the config file, the 'db' location is already known. This is just @@ -121,42 +135,10 @@ void initializeData ( // Initialize the database (no data read), but files are enumerated. database.initialize (data._data); + log.write ("info", database.dump ()); // TODO Give the log file a temp fake name. To be removed. log.file (dbLocation._data + "/timewarrior.log"); - -/* - log.write ("info", "Configuration"); - for (const auto& name : configuration.all ()) - log.write ("info", std::string (" ") + name + "=" + configuration[name]); -*/ - - log.write ("info", database.dump ()); -} - -//////////////////////////////////////////////////////////////////////////////// -void initializeRules ( - Rules& rules, - Log& log) -{ - // TODO Load rule grammar. -/* - File ruleFile ("./rule.grammar"); - Grammar ruleGrammar; - ruleGrammar.debug (debug); - ruleGrammar.loadFromFile (ruleFile); -*/ - // Instantiate the parser. -/* - LR0 ruleParser; - ruleParser.debug (debug); - ruleParser.initialize (ruleGrammar); -*/ - -/* - rules.load (configuration.get ("db") + "/timewarrior.cfg"); -*/ - log.write ("info", rules.dump ()); } diff --git a/src/timew.cpp b/src/timew.cpp index fe2839f5..1a76a380 100644 --- a/src/timew.cpp +++ b/src/timew.cpp @@ -63,27 +63,13 @@ int main (int argc, const char** argv) // Prepare the database, but do not read data. Database database; Rules rules; - initializeData (database, rules, log); + initializeDataAndRules (database, rules, log); // TODO Arrange the following to minimize memory use. // TODO Load CLI grammar. // TODO Load from string, else file on config override. // TODO Migrate from loading a grammar from file, to a default string. -/* - File cliFile ("./cli.grammar"); - Grammar cliGrammar; - cliGrammar.debug (debug); - cliGrammar.loadFromFile (cliFile); - - // Instantiate the parser. - LR0 cliParser; - cliParser.debug (debug); - cliParser.initialize (cliGrammar); // TODO Parse CLI. -*/ - - // Load the rules. - initializeRules (rules, log); // Load extension script info. Extensions extensions; diff --git a/src/timew.h b/src/timew.h index ca7e3cc4..60363445 100644 --- a/src/timew.h +++ b/src/timew.h @@ -34,8 +34,7 @@ // init.cpp bool lightweightVersionCheck (const std::vector &); -void initializeData (Database&, Rules&, Log&); -void initializeRules (Rules&, Log&); +void initializeDataAndRules (Database&, Rules&, Log&); void initializeExtensions (Rules&, Extensions&, Log&); int dispatchCommand (const std::vector &, Database&, Rules&, Extensions&, Log&);