diff --git a/CHANGELOG.md b/CHANGELOG.md index 561c261..c955b50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ Other changes | Version | Date | Comment | | -------------- | -------------- | -------- | +| 3.45.10 | 2018-11-03 | fixed issue `battery()`, modified `package.json` - files | | 3.45.9 | 2018-10-22 | fixed node 4 incompatibility | | 3.45.8 | 2018-10-22 | `system()` fix Raspberry Pi detection | | 3.45.7 | 2018-10-05 | fixed typos | diff --git a/lib/battery.js b/lib/battery.js index d15a1cf..e11c2e2 100644 --- a/lib/battery.js +++ b/lib/battery.js @@ -82,6 +82,9 @@ module.exports = function (callback) { result.percent = 100.0 * result.currentcapacity / result.maxcapacity; } } + if (result.ischarging) { + result.hasbattery = true; + } if (energy && power) { result.timeremaining = Math.floor(energy / power * 60); } diff --git a/lib/dockerSocket.js b/lib/dockerSocket.js index 605c1af..bf3bad3 100644 --- a/lib/dockerSocket.js +++ b/lib/dockerSocket.js @@ -21,8 +21,9 @@ class DockerSocket { listContainers(all, callback) { try { - let socket = net.createConnection({path: socketPath}); + let socket = net.createConnection({ path: socketPath }); let alldata = ''; + let data; socket.on('connect', () => { socket.write('GET http:/containers/json' + (all ? '?all=1' : '') + ' HTTP/1.0\r\n\r\n'); @@ -39,9 +40,14 @@ class DockerSocket { socket.on('end', () => { let startbody = alldata.indexOf('\r\n\r\n'); - alldata = alldata.substring(startbody, 100000).replace(/[\n\r]/g, ''); + alldata = alldata.substring(startbody, 10000000).replace(/[\n\r]/g, ''); socket = false; - callback(JSON.parse(alldata)); + try { + data = JSON.parse(alldata); + callback(data); + } catch (err) { + callback({}); + } }); } catch (err) { callback({}); @@ -52,8 +58,9 @@ class DockerSocket { id = id || ''; if (id) { try { - let socket = net.createConnection({path: socketPath}); + let socket = net.createConnection({ path: socketPath }); let alldata = ''; + let data; socket.on('connect', () => { socket.write('GET http:/containers/' + id + '/stats?stream=0 HTTP/1.0\r\n\r\n'); @@ -70,9 +77,14 @@ class DockerSocket { socket.on('end', () => { let startbody = alldata.indexOf('\r\n\r\n'); - alldata = alldata.substring(startbody, 100000).replace(/[\n\r]/g, ''); + alldata = alldata.substring(startbody, 10000000).replace(/[\n\r]/g, ''); socket = false; - callback(JSON.parse(alldata)); + try { + data = JSON.parse(alldata); + callback(data); + } catch (err) { + callback({}); + } }); } catch (err) { callback({}); @@ -86,8 +98,9 @@ class DockerSocket { id = id || ''; if (id) { try { - let socket = net.createConnection({path: socketPath}); + let socket = net.createConnection({ path: socketPath }); let alldata = ''; + let data; socket.on('connect', () => { socket.write('GET http:/containers/' + id + '/top?ps_args=-opid,ppid,pgid,vsz,time,etime,nice,ruser,user,rgroup,group,stat,rss,args HTTP/1.0\r\n\r\n'); @@ -104,9 +117,14 @@ class DockerSocket { socket.on('end', () => { let startbody = alldata.indexOf('\r\n\r\n'); - alldata = alldata.substring(startbody, 100000).replace(/[\n\r]/g, ''); + alldata = alldata.substring(startbody, 10000000).replace(/[\n\r]/g, ''); socket = false; - callback(JSON.parse(alldata)); + try { + data = JSON.parse(alldata); + callback(data); + } catch (err) { + callback({}); + } }); } catch (err) { callback({}); diff --git a/package.json b/package.json index 643e97a..5c151d8 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,9 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, + "files": [ + "lib/" + ], "keywords": [ "system information", "sysinfo", @@ -59,4 +62,4 @@ "engines": { "node": ">=4.0.0" } -} +} \ No newline at end of file