| | const fs = require('fs') |
| | const path = require('path') |
| | const execSync = require('child_process').execSync |
| |
|
| | function exec(command, options) { |
| | try { |
| | const { stdout, stderr } = execSync(command, options) |
| | if (stderr) { |
| | throw new Error(stderr) |
| | } |
| | console.log(stdout) |
| | } catch (e) { |
| | console.log('Exec Error:', e) |
| | } |
| | } |
| |
|
| | const root = __dirname |
| | function loop() { |
| | console.log(new Date(), 'auto commit start') |
| | const dirs = fs.readdirSync(root) |
| | for (let dir of dirs) { |
| | const cwd = path.join(root, dir) |
| | if (fs.existsSync(path.join(cwd, '.git/config'))) { |
| | console.log('auto commit', cwd) |
| | exec(`git add -A`, { cwd }) |
| | exec(`git commit -am "[WIP] auto commit"`, { cwd }) |
| | exec(`git push`, { cwd }) |
| | console.log('done') |
| | } |
| | } |
| | } |
| | |
| | const timeout = process.env.AUTO_COMMIT || 86400 |
| | if (timeout > 600) { |
| | setInterval(loop, 1000 * timeout) |
| | } |