freeleaps-ops/first-class-pipeline/src/com/freeleaps/devops/lint/Linter.groovy

34 lines
912 B
Groovy
Raw Normal View History

package com.freeleaps.devops.lint
interface Linter {
def lint()
}
abstract class LinterBase implements Linter {
def steps
def workspace
def configs
def linterType
LinterBase(steps, workspace, configs, linterType) {
this.steps = steps
this.workspace = workspace
this.configs = configs
this.linterType = linterType
}
def lint() {
steps.log.info("${linterType.linter}", "Linting ${linterType.language.language} code")
steps.log.info("${linterType.linter}", "Workspace sets to: ${workspace}")
if (configs == null || configs.isEmpty()) {
steps.log.error("${linterType.linter}", "Not set configurations file, linter configuration file is required")
}
steps.log.info("${linterType.linter}", "Using ${configs} as configurations file")
doLint()
steps.log.info("${linterType.linter}", "Code linting has been completed")
}
abstract def doLint()
}