Skip to content

Commit 11d8fed

Browse files
authored
feat-fix(config): load support for absolute paths (#1256)
1 parent d4f6519 commit 11d8fed

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/cli/flowr.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { defaultConfigFile, flowrMainOptionDefinitions, getScriptsText } from '.
2828
import { TreeSitterExecutor } from '../r-bridge/lang-4.x/tree-sitter/tree-sitter-executor';
2929
import type { KnownParser } from '../r-bridge/parser';
3030
import fs from 'fs';
31+
import path from 'path';
3132

3233
export const toolName = 'flowr';
3334

@@ -98,7 +99,7 @@ if(options['config-json']) {
9899
if(!usedConfig) {
99100
if(options['config-file']) {
100101
// validate it exists
101-
if(!fs.existsSync(options['config-file'])) {
102+
if(!fs.existsSync(path.resolve(options['config-file']))) {
102103
log.error(`Config file '${options['config-file']}' does not exist`);
103104
process.exit(1);
104105
}

src/config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,14 @@ export function getEngineConfig<T extends EngineConfig['type']>(engine: T): Engi
194194

195195
function loadConfigFromFile(configFile: string | undefined, workingDirectory: string): FlowrConfigOptions {
196196
if(configFile !== undefined) {
197+
if(path.isAbsolute(configFile) && fs.existsSync(configFile)) {
198+
log.trace(`Found config at ${configFile} (absolute)`);
199+
const ret = parseConfig(fs.readFileSync(configFile, { encoding: 'utf-8' }));
200+
if(ret) {
201+
log.info(`Using config ${JSON.stringify(ret)}`);
202+
return ret;
203+
}
204+
}
197205
let searchPath = path.resolve(workingDirectory);
198206
do{
199207
const configPath = path.join(searchPath, configFile);

0 commit comments

Comments
 (0)