better default config location detection

This commit is contained in:
Florian Dold 2021-08-04 12:21:05 +02:00
parent a123569677
commit f92cbdbf47
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 30 additions and 1 deletions

View File

@ -294,6 +294,26 @@ function normalizeInlineFilename(parentFile: string, f: string): string {
return nodejs_path().join(resolvedParentDir, f); return nodejs_path().join(resolvedParentDir, f);
} }
/**
* Crude implementation of the which(1) shell command.
*
* Tries to locate the location of an executable based on the
* "PATH" environment variable.
*/
function which(name: string): string | undefined {
const paths = process.env["PATH"]?.split(":");
if (!paths) {
return undefined;
}
for (const path of paths) {
const filename = nodejs_path().join(path, name);
if (nodejs_fs().existsSync(filename)) {
return filename;
}
}
return undefined;
}
export class Configuration { export class Configuration {
private sectionMap: SectionMap = {}; private sectionMap: SectionMap = {};
@ -613,6 +633,16 @@ export class Configuration {
private loadDefaults(): void { private loadDefaults(): void {
let bc = process.env["TALER_BASE_CONFIG"]; let bc = process.env["TALER_BASE_CONFIG"];
if (!bc) {
/* Try to locate the configuration based on the location
* of the taler-config binary. */
const path = which("taler-config");
if (path) {
bc = nodejs_fs().realpathSync(
nodejs_path().dirname(path) + "/../share/taler/config.d",
);
}
}
if (!bc) { if (!bc) {
bc = "/usr/share/taler/config.d"; bc = "/usr/share/taler/config.d";
} }

View File

@ -124,7 +124,6 @@ export async function runLibeufinTutorialTest(t: GlobalTestState) {
currency: "EUR", currency: "EUR",
facadeName: "my-twg", facadeName: "my-twg",
}); });
await libeufinCli.listFacades(); await libeufinCli.listFacades();
} }
runLibeufinTutorialTest.suites = ["libeufin"]; runLibeufinTutorialTest.suites = ["libeufin"];