From 4a2818dd42c38f34478e4073ef455163e74d3e15 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 28 Jun 2020 00:39:58 +0200 Subject: [PATCH] config: allow overriding export dir via --exportDir This is useful for e.g. exporting to a versioned (by date) dir. --- src/app.d | 9 ++++++--- src/asgen/config.d | 7 ++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/app.d b/src/app.d index 5ee52131..255b0386 100644 --- a/src/app.d +++ b/src/app.d @@ -53,7 +53,8 @@ Application Options: --verbose Show extra debugging information. --force Force action. -w|--workspace Define the workspace location. - -c|--config Use the given configuration file."; + -c|--config Use the given configuration file. + -e|--exportDir Directory to export data to."; version (unittest) { void main () {} @@ -95,6 +96,7 @@ void main(string[] args) bool showVersion; bool forceAction; string wdir; + string edir; string configFname; // parse command-line options @@ -105,7 +107,8 @@ void main(string[] args) "version", &showVersion, "force", &forceAction, "workspace|w", &wdir, - "config|c", &configFname); + "config|c", &configFname, + "exportDir|e", &edir); } catch (Exception e) { writeln ("Unable to parse parameters: ", e.msg); exit (1); @@ -140,7 +143,7 @@ void main(string[] args) } try { - conf.loadFromFile (configFname, wdir); + conf.loadFromFile (configFname, wdir, edir); } catch (Exception e) { writefln ("Unable to load configuration: %s", e.msg); exit (4); diff --git a/src/asgen/config.d b/src/asgen/config.d index eae8bd92..7dabf464 100644 --- a/src/asgen/config.d +++ b/src/asgen/config.d @@ -267,7 +267,7 @@ public: return null; } - void loadFromFile (string fname, string enforcedWorkspaceDir = null) + void loadFromFile (string fname, string enforcedWorkspaceDir = null, string enforcedExportDir = null) { // read the configuration JSON file auto f = File (fname, "r"); @@ -306,6 +306,11 @@ public: // set the default export directory locations, allow people to override them in the config exportDir = buildPath (workspaceDir, "export"); + + // allow overriding the export location + if (!enforcedExportDir.empty) + exportDir = enforcedExportDir; + mediaExportDir = buildPath (exportDir, "media"); dataExportDir = buildPath (exportDir, "data"); hintsExportDir = buildPath (exportDir, "hints");