commit f92cbdbf476d4b51e1315ae26679008ae6889f60
parent a1235696778e2d1a3714fec2eeca9a1e628e333e
Author: Florian Dold <florian@dold.me>
Date: Wed, 4 Aug 2021 12:21:05 +0200
better default config location detection
Diffstat:
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/packages/taler-util/src/talerconfig.ts b/packages/taler-util/src/talerconfig.ts
@@ -294,6 +294,26 @@ function normalizeInlineFilename(parentFile: string, f: string): string {
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 {
private sectionMap: SectionMap = {};
@@ -614,6 +634,16 @@ export class Configuration {
private loadDefaults(): void {
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) {
bc = "/usr/share/taler/config.d";
}
this.loadFrom(bc);
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
@@ -124,7 +124,6 @@ export async function runLibeufinTutorialTest(t: GlobalTestState) {
currency: "EUR",
facadeName: "my-twg",
});
-
await libeufinCli.listFacades();
}
runLibeufinTutorialTest.suites = ["libeufin"];