From 8e5c4af4b6cd50009ff432803e3b2d0b92fdfda4 Mon Sep 17 00:00:00 2001 From: Taken Date: Tue, 18 Apr 2023 22:53:46 +0200 Subject: [PATCH] Updating to script args --- deploy-commands.js | 131 +++++++++++++++++++++++++++++++++++---------- deploy-testing.js | 41 -------------- package.json | 6 +-- test.js | 5 ++ 4 files changed, 110 insertions(+), 73 deletions(-) delete mode 100644 deploy-testing.js create mode 100644 test.js diff --git a/deploy-commands.js b/deploy-commands.js index f2bd8d0..31057df 100644 --- a/deploy-commands.js +++ b/deploy-commands.js @@ -3,36 +3,109 @@ const env = require('dotenv').config(); const token = process.env.TOKEN; const clientId = process.env.CLIENTID; const fs = require('node:fs'); +const args = process.argv.slice(2); +const arg = args[0]; - -const commands = []; -// Grab all the command files from the commands directory you created earlier -const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); - -// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment -for (const file of commandFiles) { - const command = require(`./commands/${file}`); - commands.push(command.data.toJSON()); +if (!arg) { + console.log('Please specify a command to run!'); } +else if (arg === '--prod') { + const commands = []; + // Grab all the command files from the commands directory you created earlier + const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); -// Construct and prepare an instance of the REST module -const rest = new REST({ version: '10' }).setToken(token); - - -// and deploy your commands! -(async () => { - try { - console.log(`Started refreshing ${commands.length} application (/) commands.`); - - // The put method is used to fully refresh all commands in the guild with the current set - const data = await rest.put( - Routes.applicationCommands(clientId), - { body: commands }, - ); - - console.log(`Successfully reloaded ${data.length} application (/) commands.`); - } catch (error) { - // And of course, make sure you catch and log any errors! - console.error(error); + // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment + for (const file of commandFiles) { + const command = require(`./commands/${file}`); + commands.push(command.data.toJSON()); } -})(); + + // Construct and prepare an instance of the REST module + const rest = new REST({ version: '10' }).setToken(token); + + + // and deploy your commands! + (async () => { + try { + console.log(`Started refreshing ${commands.length} application (/) commands.`); + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await rest.put( + Routes.applicationCommands(clientId), + { body: commands }, + ); + + console.log(`Successfully reloaded ${data.length} application (/) commands.`); + } catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); + } + })(); +} +else if (arg === '--dev') { + const commands = []; + // Grab all the command files from the commands directory you created earlier + const commandFiles = fs.readdirSync('./commands-contextmenu').filter(file => file.endsWith('.js')); + + // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment + for (const file of commandFiles) { + const command = require(`./commands-contextmenu/${file}`); + commands.push(command.data.toJSON()); + } + + // Construct and prepare an instance of the REST module + const rest = new REST({ version: '10' }).setToken(token); + + + // and deploy your commands! + (async () => { + try { + console.log(`Started refreshing ${commands.length} application (/) commands.`); + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await rest.put( + Routes.applicationCommands(clientId), + { body: commands }, + ); + + console.log(`Successfully reloaded ${data.length} application (/) commands.`); + } catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); + } + })(); +} else if (arg === '--contextmenu') { + const commands = []; + // Grab all the command files from the commands directory you created earlier + const commandFiles = fs.readdirSync('./commands-contextmenu').filter(file => file.endsWith('.js')); + + // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment + for (const file of commandFiles) { + const command = require(`./commands-contextmenu/${file}`); + commands.push(command.data.toJSON()); + } + + // Construct and prepare an instance of the REST module + const rest = new REST({ version: '10' }).setToken(token); + + + // and deploy your commands! + (async () => { + try { + console.log(`Started refreshing ${commands.length} application contextmenu (/) commands.`); + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await rest.put( + Routes.applicationCommands(clientId), + { body: commands }, + ); + + console.log(`Successfully reloaded ${data.length} application contextmenu (/) commands.`); + } catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); + } + })(); +} else if (arg && arg !== '--prod' && arg !== '--dev' && arg !== '--contextmenu') { + console.log('Invalid argument!'); +} \ No newline at end of file diff --git a/deploy-testing.js b/deploy-testing.js deleted file mode 100644 index 9f4d805..0000000 --- a/deploy-testing.js +++ /dev/null @@ -1,41 +0,0 @@ -const { REST, Routes } = require('discord.js'); -const env = require('dotenv').config(); -const token = process.env.TOKEN; -const clientId = process.env.CLIENTID; -const guildId = process.env.GUILDID; - -//const { clientId, guildId, token } = require('./config.json'); -const fs = require('node:fs'); - - -const commands = []; -// Grab all the command files from the commands directory you created earlier -const commandFiles = fs.readdirSync('./commands-testing').filter(file => file.endsWith('.js')); - -// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment -for (const file of commandFiles) { - const command = require(`./commands-testing/${file}`); - commands.push(command.data.toJSON()); -} - -// Construct and prepare an instance of the REST module -const rest = new REST({ version: '10' }).setToken(token); - - -// and deploy your commands! -(async () => { - try { - console.log(`Started refreshing ${commands.length} application (/) commands.`); - - // The put method is used to fully refresh all commands in the guild with the current set - const data = await rest.put( - Routes.applicationGuildCommands(clientId, guildId), - { body: commands }, - ); - - console.log(`Successfully reloaded ${data.length} application (/) commands.`); - } catch (error) { - // And of course, make sure you catch and log any errors! - console.error(error); - } -})(); diff --git a/package.json b/package.json index 68b2075..44dad8b 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "description": "", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "prod:build": "node deploy-commands.js", - "dev:build": "node deploy-testing.js" + "prod:build": "node deploy-commands.js --prod", + "prod:build:context": "node deploy-commands.js --contextmenu", + "dev:build": "node deploy-commands.js --dev" }, "author": "Taken", "license": "ISC", diff --git a/test.js b/test.js new file mode 100644 index 0000000..03026e8 --- /dev/null +++ b/test.js @@ -0,0 +1,5 @@ +const args = process.argv.slice(2); + +const arg = args[0]; + +console.log(arg); \ No newline at end of file