esv: refactor compile time configuration
This commit is contained in:
parent
77c2c4825a
commit
59c92c8db7
2 changed files with 15 additions and 17 deletions
12
config.di
12
config.di
|
@ -2,11 +2,11 @@ module config;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
enum DEFAULT_APIKEY = "abfb7456fa52ec4292c79e435890cfa3df14dc2b";
|
enum esvVersion = "0.2.0-dev";
|
||||||
enum DEFAULT_CONFIGPATH = "~/.config/esv.conf";
|
|
||||||
enum DEFAULT_MPEGPLAYER = "mpg123";
|
|
||||||
|
|
||||||
enum ENV_CONFIG = "ESV_CONFIG";
|
enum apiKey = "abfb7456fa52ec4292c79e435890cfa3df14dc2b";
|
||||||
enum ENV_PLAYER = "ESV_PLAYER";
|
enum configPath = "~/.config/esv.conf";
|
||||||
|
enum mp3Player = "mpg123";
|
||||||
|
|
||||||
enum BUGREPORTURL = "https://todo.sr.ht/~jeremy/esv";
|
enum configEnv = "ESV_CONFIG";
|
||||||
|
enum playerEnv = "ESV_PLAYER";
|
||||||
|
|
20
esv.d
20
esv.d
|
@ -30,15 +30,13 @@ import std.process : environment, executeShell;
|
||||||
import std.stdio : writef, writeln, writefln, File;
|
import std.stdio : writef, writeln, writefln, File;
|
||||||
import std.string : splitLines;
|
import std.string : splitLines;
|
||||||
|
|
||||||
|
import esvapi;
|
||||||
import initial;
|
import initial;
|
||||||
|
|
||||||
import config;
|
import cf = config;
|
||||||
import esvapi;
|
|
||||||
|
|
||||||
@safe:
|
@safe:
|
||||||
|
|
||||||
enum VERSION = "0.2.0-dev";
|
|
||||||
|
|
||||||
bool aFlag; /* audio */
|
bool aFlag; /* audio */
|
||||||
string CFlag; /* config */
|
string CFlag; /* config */
|
||||||
bool fFlag, FFlag; /* footnotes */
|
bool fFlag, FFlag; /* footnotes */
|
||||||
|
@ -80,10 +78,10 @@ main(string[] args)
|
||||||
|
|
||||||
/* Parse command-line options */
|
/* Parse command-line options */
|
||||||
try {
|
try {
|
||||||
import std.getopt : cfg = config;
|
import std.getopt : config;
|
||||||
getopt(args,
|
getopt(args,
|
||||||
cfg.bundling,
|
config.bundling,
|
||||||
cfg.caseSensitive,
|
config.caseSensitive,
|
||||||
"a", &aFlag,
|
"a", &aFlag,
|
||||||
"C", &CFlag,
|
"C", &CFlag,
|
||||||
"F", &FFlag, "f", &fFlag,
|
"F", &FFlag, "f", &fFlag,
|
||||||
|
@ -104,7 +102,7 @@ main(string[] args)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VFlag) {
|
if (VFlag) {
|
||||||
writeln("esv " ~ VERSION);
|
writeln("esv " ~ cf.esvVersion);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +125,7 @@ main(string[] args)
|
||||||
* Options have first priority, then environment variables,
|
* Options have first priority, then environment variables,
|
||||||
* then the default path */
|
* then the default path */
|
||||||
config:
|
config:
|
||||||
configPath = environment.get(ENV_CONFIG, DEFAULT_CONFIGPATH).expandTilde();
|
configPath = environment.get(cf.configEnv, cf.configPath).expandTilde();
|
||||||
try {
|
try {
|
||||||
if (CFlag != "") { /* if -C was given */
|
if (CFlag != "") { /* if -C was given */
|
||||||
enforceDie(isValidPath(CFlag), CFlag ~ ": invalid path");
|
enforceDie(isValidPath(CFlag), CFlag ~ ": invalid path");
|
||||||
|
@ -151,7 +149,7 @@ key = %s
|
||||||
#headings = false
|
#headings = false
|
||||||
#passage-references = false
|
#passage-references = false
|
||||||
#verse-numbers = false
|
#verse-numbers = false
|
||||||
"(DEFAULT_APIKEY));
|
"(cf.apiKey));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
readINIFile(ini, configPath);
|
readINIFile(ini, configPath);
|
||||||
|
@ -175,7 +173,7 @@ key = %s
|
||||||
tmpf = esv.getAudioPassage(args[1], args[2]);
|
tmpf = esv.getAudioPassage(args[1], args[2]);
|
||||||
catch (CurlException e)
|
catch (CurlException e)
|
||||||
die(e.msg);
|
die(e.msg);
|
||||||
mpegPlayer = environment.get(ENV_PLAYER, DEFAULT_MPEGPLAYER);
|
mpegPlayer = environment.get(cf.playerEnv, cf.mp3Player);
|
||||||
|
|
||||||
/* check for an audio player */
|
/* check for an audio player */
|
||||||
enforceDie(
|
enforceDie(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue