UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

31 lines 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.detectSummarizationType = detectSummarizationType; const fs_1 = __importDefault(require("fs")); const summarizer_1 = require("./summarizer"); const log_1 = require("../../util/log"); async function detectSummarizationType(inputPath) { if (fs_1.default.statSync(inputPath).isFile()) { log_1.log.info(`Detected benchmark summarization with single file ${inputPath}`); return "benchmark" /* SummarizerType.Benchmark */; } // current heuristic: search for a tar.gz with two minus signs :D const dir = await fs_1.default.promises.opendir(inputPath); const thresholdInit = 60; let threshold = thresholdInit; for await (const dirent of dir) { if (summarizer_1.statisticsFileNameRegex.test(dirent.name)) { log_1.log.info(`Detected statistics summarization by file ${dirent.name} matching ${summarizer_1.statisticsFileNameRegex.source}`); return "statistics" /* SummarizerType.Statistics */; } else if (threshold-- < 0) { break; } } log_1.log.info(`Detected benchmark summarization with no file (first ${thresholdInit}) matching ${summarizer_1.statisticsFileNameRegex.source}`); return "benchmark" /* SummarizerType.Benchmark */; } //# sourceMappingURL=auto-detect.js.map