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) | |
} |