node-gamedig/bin/gamedig.js

52 lines
1.2 KiB
JavaScript
Raw Normal View History

2014-10-29 08:02:03 +01:00
#!/usr/bin/env node
const argv = require('minimist')(process.argv.slice(2)),
Gamedig = require('..');
2014-10-29 08:02:03 +01:00
const debug = argv.debug;
2014-10-29 08:02:03 +01:00
delete argv.debug;
const outputFormat = argv.output;
2014-10-29 08:02:03 +01:00
delete argv.output;
const options = {};
for(const key of Object.keys(argv)) {
const value = argv[key];
2014-10-29 08:02:03 +01:00
if(
key === '_'
|| key.charAt(0) === '$'
|| (typeof value !== 'string' && typeof value !== 'number')
2014-10-29 08:02:03 +01:00
)
continue;
options[key] = value;
}
if(debug) Gamedig.debug = true;
Gamedig.isCommandLine = true;
2017-03-14 09:40:02 +01:00
Gamedig.query(options)
.then((state) => {
if(outputFormat === 'pretty') {
2014-10-29 08:02:03 +01:00
console.log(JSON.stringify(state,null,' '));
} else {
console.log(JSON.stringify(state));
}
2017-03-14 09:40:02 +01:00
})
.catch((error) => {
if (debug) {
if (error instanceof Error) {
console.log(error.stack);
} else {
console.log(error);
}
} else {
if (error instanceof Error) {
error = error.message;
}
if (outputFormat === 'pretty') {
console.log(JSON.stringify({error: error}, null, ' '));
} else {
console.log(JSON.stringify({error: error}));
}
}
2017-03-14 09:40:02 +01:00
});