fivem-docker-cli
Version:
Command-line tool to create and administer FiveM Servers running in Docker.
59 lines (48 loc) • 1.45 kB
JavaScript
const {Command, flags} = require('@oclif/command');
const Docker = require('dockerode');
// Initialization
const docker = new Docker({ socketPath: "/var/run/docker.sock" });
class RestartCommand extends Command {
async run() {
const {flags} = this.parse(RestartCommand);
let serverid;
let servername;
let container;
if (flags.serverid) {
serverid = flags.serverid;
}
if (flags.servername) {
servername = flags.servername;
}
if (serverid || servername) {
serverid = serverid || servername;
container = docker.getContainer(serverid);
container.stop((err, data) => {
if (err) {
console.log(err);
} else {
console.log('Stopping server...');
}
});
} else {
console.error('You must enter a valid server ID or name.')
}
Promise.all([container.stop])
.then(() => {
container.start((err, data) => {
if (err) {
console.log(err);
} else {
console.log('Starting server...');
}
})
.catch((err) => console.error(err));
});
}
}
RestartCommand.description = `Restarts a FiveM server Docker container.`;
RestartCommand.flags = {
servername: flags.string({char: 's', description: 'Name of the FiveM Docker container.'}),
serverid: flags.string({char: 'i', description: 'ID of the FiveM Docker container.'}),
};
module.exports = RestartCommand;