An electron-based WIP aesthetic file explorer ^^
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FileKade/newversion.js

51 lines
1.8 KiB

const readline = require('readline');
const fs = require('fs');
const cp = require('child_process');
const rl = readline.createInterface({input: process.stdin, output: process.stdout});
const input = async question => {return new Promise(r => {rl.question(question, (ans) => {r(ans);});});};
let cl = {};
let v;
const ask = async () => {
const addGroup = async () => {
let conf = await input("\nWould you like to add a new group? ");
if (['y', 'ye', 'yes', 'sure'].includes(conf.trim().toLowerCase())) {
let gn = await input("What is the group's name? ");
cl[gn] = [];
const addItem = async () => {
let item = await input("Add an item: ");
if (!['done', ''].includes(item.trim().toLowerCase())) {
cl[gn].push(item);
await addItem();
}
};
await addItem();
await addGroup();
}
};
v = await input('What version are you making a changelog for? ');
await addGroup();
fs.writeFileSync(`./json/changelogs/${v.trim().toLowerCase()}.json`, JSON.stringify({log: cl, version: {name: "Alpha", semver: v}}));
await input("I've made the changelog for you! Press enter when you're ready to create the release tag.");
let msg = await input('What would you like the commit message to be? ');
console.log('');
cp.exec('git add .', () => {
console.log('Staged working directory.\n');
cp.exec(`npm version ${v.trim().toLowerCase()} -f -m "%s -> ${msg}"`, function(error, stdout, stderr) {
if (error) {console.error(error);}
if (stdout) {console.log(stdout);}
if (stdout) {console.log(stderr);}
});
});
console.log('\nDone!');
};
ask();