Files
Notebook-StarNet/AutoCommitPush.mjs
T

54 lines
1.4 KiB
JavaScript

import _readline from "readline";
import { exec } from "node:child_process";
const execSync = command =>
new Promise((resolve, rejects) => {
exec(command, (err, stdout, stderr) => {
if (err) {
console.error(stderr);
rejects(stderr);
} else {
console.log(stdout);
resolve(stdout);
}
});
});
const input = question =>
new Promise((resolve, rejects) => {
try {
const readline = _readline.createInterface({
input: process.stdin,
output: process.stdout
});
readline.question(question, output => {
readline.close();
resolve(output);
});
} catch (e) {
rejects(e);
}
});
const generateDate = function () {
const dateNow = new Date();
const paddingNumber = function (num) {
return ("0" + num).slice(-2);
};
let year = dateNow.getFullYear().toString().slice(-2);
let month = paddingNumber(dateNow.getMonth() + 1);
let day = paddingNumber(dateNow.getDate());
let hour = paddingNumber(dateNow.getHours());
let minute = paddingNumber(dateNow.getMinutes());
let seconds = paddingNumber(dateNow.getSeconds());
return `${year}-${month}-${day} ${hour}:${minute}:${seconds}`;
};
(async function () {
const remark = await input("remark:");
const message = `update:${generateDate()} ${remark ? '-remark:"' + remark + '"' : ""} -AutoCommit`;
await execSync(`git add ."`);
await execSync(`git commit -m "${message}"`);
await execSync("git push");
})();