@revoloo/cypress6
Version:
Cypress.io end to end testing tool
44 lines (34 loc) • 1.05 kB
JavaScript
const sh = require('shelljs')
const utils = require('./utils')
const chalk = require('chalk')
const debug = require('debug')('lint-pre-push')
const start = () => {
const getFilenames = () => {
const GIT_PARAMS = (process.env.HUSKY_GIT_PARAMS || 'origin').split(' ')
const gitRemote = GIT_PARAMS[0]
const gitBranch = sh.exec(`git branch`).grep(/\*/).split(/\s/)[1]
const gitRemoteBranch = `${gitRemote}/${gitBranch}`
debug({ gitRemote })
debug({ gitBranch })
return sh
.exec(`git diff HEAD ${sh.ShellString(gitRemoteBranch)} --name-only`)
.split('\n')
}
return utils.lintFilesByText({
getFilenames,
getFileText: (f) => sh.exec(`git show :${sh.ShellString(f)}`),
})
.then(({ failCount, filenames }) => {
if (failCount) {
process.exit(failCount)
}
// eslint-disable-next-line no-console
console.log(chalk.bold(`${chalk.green(filenames.length)} files linted successfully`))
return
})
}
if (!module.parent) {
start()
}
module.exports = { start }