var fs = require('fs') var names = [] for (var d of fs.readdirSync('src')) { for (var f of fs.readdirSync(`src/${d}`)) { var m = f.match(/^([$A-Z][$\w]*)\.(?:coffee|js)$/) if (m) names.push(m[1]) } } var decl = `var ${names.sort().join(', ')};\n` var oldDecl try { oldDecl = fs.readFileSync('tmp/declaration.js', 'utf8') } catch (err) {} if (decl !== oldDecl) { fs.writeFileSync('tmp/declaration.js', decl, 'utf8') }