const Discord = require('discord.js'); const fs = require('fs'); const chalk = require('chalk'); const UserData = require('../models/user'); const cp = require('child_process'); module.exports = { name: "pull", help: new Discord.MessageEmbed() .setTitle("Help -> VCS Pull") .setDescription("Pulls new commits from VCS") .addField("Syntax", "`pull`") .addField("Notice", "This command is only available to Natsuki developers."), meta: { category: 'Developer', description: "Pull new commits from VSC and update the bot. Otaku zone, non-otakus not allowed.", syntax: '`pull`', extra: "You'll still need to use `reload` afterwards" }, async execute(message, msg, args, cmd, prefix, mention, client) { const tu = await UserData.findOne({uid: message.author.id}); if (!tu || !tu.developer) {return message.channel.send("You must be a Natsuki developer in order to do this!");} console.log(`\n${chalk.yellow('[WARN]')} >> ${chalk.gray('VCS:')} ${chalk.white('Initiating remote->local VCS sync/refresh!')}`); cp.exec("git pull origin master", function(error, stdout, stderr) { if (stderr || error) { let date = new Date; date = date.toString().slice(date.toString().search(":") - 2, date.toString().search(":") + 6); console.error(`\n${chalk.red('[ERROR]')} >> ${chalk.yellow(`At [${date}] | Occurred while trying to pull from VCS`)}`, stderr || error); } else { console.log(`\n${chalk.gray('[INFO]')} >> ${chalk.hex('ff4fd0')(`VCS Pull successful`)}\n`); } return message.channel.send(`Done with ${stderr || error ? 'an error' : 'no errors'}!`); }); } };