codacy-seed
Version:
Library to create Codacy Tools in Typescript
44 lines (36 loc) • 1.33 kB
text/typescript
import { Engine } from "./engine"
import {
parseCodacyrcFile,
parseSpecification,
readJsonFile
} from "./fileUtils"
import { parseTimeoutSeconds } from "./parseTimeoutSeconds"
import { resultString } from "./resultString"
import { withDefaultParameters } from "./withDefaultParameters"
async function runImpl(engine: Engine) {
const jsonSpecification = await readJsonFile("/docs/patterns.json")
const specificaiton = jsonSpecification
? parseSpecification(jsonSpecification)
: undefined
const jsonCodacyrc = await readJsonFile("/.codacyrc")
const codacyrc = jsonCodacyrc ? parseCodacyrcFile(jsonCodacyrc) : undefined
// Creates a new configuration with default parameters when they are not present on the codacyrc
const codacyrcWithDefaults = codacyrc
? withDefaultParameters(codacyrc, specificaiton)
: undefined
const toolResults = await engine(codacyrcWithDefaults)
const lines = resultString(toolResults)
console.log(lines)
}
export function run(engine: Engine): void {
const timeoutHandle = setTimeout(() => {
console.error("Timeout occurred. Exiting.")
process.exit(2)
}, parseTimeoutSeconds(process.env.TIMEOUT_SECONDS) * 1000)
runImpl(engine)
.catch((e) => {
console.error(e)
process.exit(1)
})
.finally(() => clearTimeout(timeoutHandle))
}