Skip to content

Instantly share code, notes, and snippets.

@andrefa
Created February 6, 2020 13:54
Show Gist options
  • Save andrefa/f7351d7402606cd8325862dd3bb495e8 to your computer and use it in GitHub Desktop.
Save andrefa/f7351d7402606cd8325862dd3bb495e8 to your computer and use it in GitHub Desktop.
const fs = require('fs')
const path = require('path')
const voidFn = () => {}
class Utils {
constructor() {
this.gitignoreFileName = '.gitignore'
}
isDirectory(file) {
return fs.statSync(file).isDirectory()
}
readDirectory(directory) {
return fs.readdirSync(directory).map( file => path.join(directory, file))
}
hasExtension(f, ext) {
return f.split('.').pop() === ext
}
iterateRecursively({ directory, dirAction = voidFn, fileAction = voidFn }) {
const files = this.readDirectory(directory)
files.forEach( file => {
if (this.isDirectory(file)) {
this.iterateRecursively({directory: file, dirAction, fileAction})
dirAction(file)
} else {
fileAction(file)
}
})
}
}
const utils = new Utils()
utils.iterateRecursively({
directory: '.',
fileAction: (file) => {
if (utils.hasExtension(file, 'gitignore')) {
const ignored = fs.readFileSync(file).toString()
console.log(ignored)
}
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment