Updating to script args

This commit is contained in:
2023-04-18 22:53:46 +02:00
parent 17051db7aa
commit 8e5c4af4b6
4 changed files with 110 additions and 73 deletions

View File

@@ -3,8 +3,13 @@ const env = require('dotenv').config();
const token = process.env.TOKEN; const token = process.env.TOKEN;
const clientId = process.env.CLIENTID; const clientId = process.env.CLIENTID;
const fs = require('node:fs'); const fs = require('node:fs');
const args = process.argv.slice(2);
const arg = args[0];
if (!arg) {
console.log('Please specify a command to run!');
}
else if (arg === '--prod') {
const commands = []; const commands = [];
// Grab all the command files from the commands directory you created earlier // Grab all the command files from the commands directory you created earlier
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
@@ -36,3 +41,71 @@ const rest = new REST({ version: '10' }).setToken(token);
console.error(error); 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!');
}

View File

@@ -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);
}
})();

View File

@@ -4,9 +4,9 @@
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "prod:build": "node deploy-commands.js --prod",
"prod:build": "node deploy-commands.js", "prod:build:context": "node deploy-commands.js --contextmenu",
"dev:build": "node deploy-testing.js" "dev:build": "node deploy-commands.js --dev"
}, },
"author": "Taken", "author": "Taken",
"license": "ISC", "license": "ISC",

5
test.js Normal file
View File

@@ -0,0 +1,5 @@
const args = process.argv.slice(2);
const arg = args[0];
console.log(arg);