ban-sensitive-files
Version:
Checks filenames to be committed against a library of filename rules to prevent sensitive files in Git
56 lines (49 loc) • 1.36 kB
JavaScript
require('update-notifier')({
pkg: require('../package.json')
}).notify()
const log = require('debug')('ban')
const la = require('lazy-ass')
const is = require('check-more-types')
const collectFiles = require('../src/collect-files')
const checkSensitiveFiles = require('../src/check-sensitive-files')
function shouldCheckAllFiles () {
return process.argv.some(str => {
return str === '--all' ||
str === '--every' ||
str === '-f' ||
str === '--force'
})
}
const isBanned = require('..')
const options = {
all: shouldCheckAllFiles()
}
function findBanned (filenames) {
return Promise.resolve(isBanned(filenames))
.then(function (foundBannedFilenames) {
if (foundBannedFilenames) {
log('found banned filenames', foundBannedFilenames)
la(is.array(foundBannedFilenames), 'expected list', foundBannedFilenames)
la(is.not.empty(foundBannedFilenames), 'empty list', foundBannedFilenames)
process.exit(-1)
}
log('found no banned filenames')
})
}
collectFiles(options)
.then(filenames => {
return Promise.all([
findBanned(filenames),
checkSensitiveFiles(filenames)
])
})
.catch(function (err) {
if (err.message) {
console.error(err.message)
} else {
console.error(err)
}
process.exit(-1)
})
.done()