Spaces:
Sleeping
Sleeping
| 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') | |
| } | |
| } | |
| } | |
| // loop() | |
| const timeout = process.env.AUTO_COMMIT || 86400 | |
| if (timeout > 600) { | |
| setInterval(loop, 1000 * timeout) | |
| } |