UNPKG

graviton-plugin-sdk

Version:

Gravtion plugin Dev Kit

88 lines (81 loc) 3.74 kB
#!/usr/bin/env node const inquirer = require('inquirer'); const chalk = require('chalk'); const clear = require('clear'); const figlet = require('figlet'); const fs = require('fs'); const cwd = process.cwd(); const git = require('simple-git/promise')(cwd).outputHandler((command, stdout, stderr) => { stdout.pipe(process.stdout); stderr.pipe(process.stderr); }); var appRoot = require('app-root-path'); const cli = require(__dirname +'/../src/cli'); let folderName = cwd.split("\\").slice(-1) folderName = folderName[0]; var args = process.argv; clear(); console.log( chalk.yellow( figlet.textSync('GP-SDK', { horizontalLayout: 'full' }) ) ); cli(args, function(res, val) { if (res) { switch (val) { // Initialize plugin case "init": inquirer .prompt([ {type:"input", name:"name", default:folderName, message:"Plugin name:"}, {type:"input", name:"version", default:"1.0.0", message:"Version:"}, {type:"list", name:"type", message:"Package type:", choices:["custom-theme","theme","plugin"]}, {type:"input", name:"description", message:"Description:"}, {type:"input", name:"run", default:"index.js", message:"Main script:"}, {type:"input", name:"test", default:"preview", message:"Preview command:"}, {type:"list", name:"engine", message:"Select the preview engine to test your plugin:",choices:["portable","graviton"]}, {type:"confirm", name:"download", message:"To preview plugins on protable we must download the repo, ok?:", when: (answers) => {return answers.engine === 'portable'}}, {type:"input", name:"repository", message:"Repository:"}, {type:"input", name:"keywords", message:"Keywords:"}, {type:"input", name:"author", message:"Author:"}, {type:"confirm", name:"validate", message:"\n\nAbout to write "+chalk.blue(cwd+"\\package.json" )+" Looks fine?"} ]) .then(answers => { if (answers.validate == true) { if (answers.download == true) { fs.mkdirSync(cwd+"\\preview", (err) => {if (err) console.log(err)}) git.clone("https://github.com/Graviton-Code-Editor/Graviton-App",cwd+"\\preview") .then(() => console.log('Preview engine downloaded!')) .catch((err) => console.error('failed: ', err));; } var path = cwd+"\\package.json"; answers.keywords = answers.keywords.split(" "); answers.scripts = {preview: answers.test+" "+ answers.run} delete answers.validate; delete answers.download delete answers.run; delete answers.test; fs.mkdirSync(cwd+"\\builds", (err) => {if (err) console.log(err)}) fs.writeFile(path, JSON.stringify(answers,null,2), (err) => {if (err) console.log(err)}); console.log(chalk.green("Done!")+"\n\n" + JSON.stringify(answers,null,2)); }else { console.log(chalk.red("Incomplete operation.")); setTimeout(function() { clear(); },1000) } }); break; case "exist": console.log("Sorry but seems like a project already exists. Type update if you wat to save new data."); break default: console.log("Sorry but it seems like it's not a command. Type --help for to know what to do."); } }else { console.log("Sorry but it seems like it's not a command. Type --help for to know what to do."); } }) function progress({loaded, total}) { console.log(Math.round(loaded/total*100)+'%'); }