From b6d7e48d26ed5e04d6408d9eb27de9a13ea4dc91 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Thu, 31 Oct 2019 01:41:57 -0400 Subject: [PATCH] Add an info feature to get app version and runtime data. No one asked for it but I need it for debugging. Oh well it's 1:41AM --- index.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/index.js b/index.js index 3e51716..94355a3 100644 --- a/index.js +++ b/index.js @@ -23,6 +23,47 @@ let app = restify.createServer({ let ble +async function execAsync (cmd) { + return new Promise((resolve, reject) => { + return exec(cmd, (err, stdio, stderr) => { + if (err) { + return reject(err) + } + return resolve(stdio) + }) + }) +} + +async function info () { + const data = { + version : PACKAGE.version, + node : null, + os : null, + kernel : null + } + + try { + data.node = await execAsync('node -v') + } catch (err) { + log.error(err) + } + + try { + data.kernel = await execAsync('uname -r') + } catch (err) { + log.error(err) + } + + try { + data.os = await execAsync('lsb_release -a | grep "Description"') + data.os = data.os.replace('Description: ', '').trim() + } catch (err) { + log.error(err) + } + + return data +} + function createServer () { app.use(restify.plugins.queryParser()) app.use(restify.plugins.bodyParser({ mapParams: false })) @@ -41,6 +82,7 @@ function createServer () { app.post('/sequence', rSequence) app.get( '/status', rStatus) + app.get( '/info', rInfo) app.post('/reset', rReset) app.post('/update', rUpdate) app.post('/restart', rRestart) @@ -65,6 +107,19 @@ function createBLE () { ble.on('reset', bReset) ble.on('update', bUpdate) ble.on('restart', bRestart) + ble.on('info', bInfo) +} + +async function rInfo (req, res, next) { + let data = {} + try { + data = await info() + } catch (err) { + log.error(err) + return next(err) + } + res.send(data) + return next() } //Restify functions