Skip to content

Commit 3a7441f

Browse files
committed
Merge branch 'development' of https://github.com/xcjs/blur-monitor
2 parents 5d42dbd + 0f5dc90 commit 3a7441f

File tree

496 files changed

+41772
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

496 files changed

+41772
-91
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,9 @@ Please report issues and enhancements. This is a project seeking to change and g
121121
## License
122122

123123
<a href=/LICENSE.txt target="_blank">MIT</a> license.
124+
125+
## Art Licenses
126+
127+
Included icons are courtesy of the former Flattr icon project: https://github.com/NitruxSA/luv-icon-theme
128+
129+
Additional icons courtesy of KDA Web Technologies: http://icons.kdaweb.com/

blurmonitor/index.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ var Inert = require('inert');
88
var path = require('path');
99

1010
var env = require('./util/environment');
11-
var startup = require('./util/startup');
1211

1312
var server = new Hapi.Server({
1413
connections: {
@@ -34,7 +33,8 @@ var routers = [
3433
require('./routes/disks'),
3534
require('./routes/network'),
3635
require('./routes/processes'),
37-
require('./routes/bandwidth')
36+
require('./routes/bandwidth'),
37+
require('./routes/assets')
3838
];
3939

4040
routers.forEach(function (router) {
@@ -43,12 +43,10 @@ routers.forEach(function (router) {
4343
});
4444
});
4545

46-
startup.run(function() {
47-
server.start(function(err) {
48-
if (err) {
49-
throw err;
50-
}
46+
server.start(function(err) {
47+
if (err) {
48+
throw err;
49+
}
5150

52-
console.log('Server running at:', server.info.uri);
53-
});
51+
console.log('Server running at:', server.info.uri);
5452
});

blurmonitor/routes/assets.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*jslint node: true */
2+
3+
'use strict';
4+
5+
var assets = require('../services/assets');
6+
7+
module.exports = getRoutes();
8+
9+
function getRoutes() {
10+
var routes = [];
11+
12+
routes.push({
13+
method: 'GET',
14+
path: '/api/assets/apps',
15+
handler: function (request, reply) {
16+
return reply(assets.getAssets('apps'));
17+
}
18+
});
19+
20+
routes.push({
21+
method: 'GET',
22+
path: '/api/assets/distros',
23+
handler: function (request, reply) {
24+
return reply(assets.getAssets('distros'));
25+
}
26+
});
27+
28+
return routes;
29+
}

blurmonitor/routes/system.js

Lines changed: 10 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'use strict';
55

66
var os = require('os');
7-
var exec = require('child_process').exec;
7+
var lsbRelease = require('../services/lsb-release');
88

99
module.exports = getRoutes();
1010

@@ -24,8 +24,15 @@ function getRoutes() {
2424
};
2525

2626
var promise = new Promise(function (resolve) {
27-
getDistro().then(function (result) {
28-
response.distro = result;
27+
lsbRelease.getRelease.then(function (release) {
28+
release = lsbRelease.parse(release);
29+
30+
response.distro = {};
31+
response.distro.id = release.DISTRIB_ID;
32+
response.distro.release = release.DISTRIB_RELEASE;
33+
response.distro.codeName = release.DISTRIB_CODENAME;
34+
response.distro.description = release.DISTRIB_DESCRIPTION;
35+
2936
resolve(response);
3037
});
3138
});
@@ -36,40 +43,3 @@ function getRoutes() {
3643

3744
return routes;
3845
}
39-
40-
function getDistro() {
41-
var promise = new Promise(function (resolve) {
42-
// Unescaped command: cat /etc/lsb-release | grep "DISTRIB_DESCRIPTION" | sed -e 's/[^"]*"\([^"]*\)".*/\1/'
43-
var command =
44-
"cat /etc/lsb-release | grep \"DISTRIB_DESCRIPTION\" | sed -e 's/[^\"]*\"\\([^\"]*\\)\".*/\\1/'";
45-
46-
var cb = function (out) {
47-
resolve(out);
48-
};
49-
50-
shell(command, cb);
51-
});
52-
53-
return promise;
54-
}
55-
56-
function shell(command, callback) {
57-
exec(command, function (error, stdout, stderr) {
58-
if (error) {
59-
// If for some reason the command fails, fallback to os.type.
60-
callback(os.type());
61-
return;
62-
}
63-
64-
var eolLength = os.EOL.length;
65-
var finalNewLine = stdout.substr(
66-
stdout.length - eolLength,
67-
stdout.length);
68-
69-
if (finalNewLine === os.EOL) {
70-
stdout = stdout.substr(0, stdout.length - eolLength);
71-
}
72-
73-
callback(stdout, stderr, error);
74-
});
75-
}

blurmonitor/services/assets.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*jslint node: true */
2+
3+
'use strict';
4+
5+
var fs = require('fs');
6+
var path = require('path');
7+
var env = require('../util/environment');
8+
9+
module.exports = {
10+
getAssets: getAssets
11+
};
12+
13+
function getAssets(type) {
14+
var assetPath = Array.isArray(env.staticRoot) ?
15+
path.join('./', env.staticRoot[1], 'assets/img/app') :
16+
path.join('./', env.staticRoot, 'assets/img/app');
17+
18+
switch(type) {
19+
case 'apps': {
20+
return listDirectory(path.join(assetPath, type));
21+
break;
22+
}
23+
24+
case 'distros': {
25+
return listDirectory(path.join(assetPath, type));
26+
break;
27+
}
28+
}
29+
}
30+
31+
function listDirectory(path) {
32+
var promise = new Promise(function (resolve, reject) {
33+
fs.readdir(path, function(err, assets) {
34+
if(!err) {
35+
var assets = assets.map(function(asset) {
36+
return(asset.substr(0, asset.lastIndexOf('.')));
37+
});
38+
39+
resolve(assets);
40+
} else {
41+
console.error(err);
42+
reject(err);
43+
}
44+
});
45+
});
46+
47+
return promise;
48+
}

blurmonitor/services/lsb-release.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*jslint node: true */
2+
/*jslint esversion: 6 */
3+
4+
'use strict';
5+
6+
var shell = require('./shell');
7+
8+
module.exports = {
9+
getRelease: getRelease(),
10+
parse: parseRelease
11+
};
12+
13+
function getRelease() {
14+
return shell.spawn('cat', ['/etc/lsb-release']);
15+
}
16+
17+
function parseRelease(stdout) {
18+
var lines = stdout.toString().split(/\n/g);
19+
var lsbRelease = {};
20+
21+
lines.forEach(function(line) {
22+
var key = line.substr(0, line.indexOf('='));
23+
var value = line.substr(line.indexOf('=') + 1, line.length -1);
24+
25+
if(key && value) {
26+
while(value.indexOf('"') > -1) {
27+
value = value.replace('"', '');
28+
}
29+
30+
lsbRelease[key] = value;
31+
}
32+
});
33+
34+
return lsbRelease;
35+
}

blurmonitor/services/shell.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*jslint node: true */
2+
/*jslint esversion: 6 */
3+
4+
'use strict';
5+
6+
var childProcess = require('child_process');
7+
8+
var exec = childProcess.exec;
9+
var spawn = childProcess.spawn;
10+
11+
module.exports = {
12+
exec: execWrapper,
13+
spawn: spawnWrapper
14+
};
15+
16+
function execWrapper(command) {
17+
var promise = new Promise(function(resolve, reject) {
18+
exec(command, function(error, stdout, stderr) {
19+
if (error) {
20+
reject('Command "' + command + '" failed. Please check for earlier errors');
21+
return;
22+
}
23+
24+
if(stderr) {
25+
console.error(stderr);
26+
}
27+
28+
resolve(stdout);
29+
});
30+
});
31+
32+
return promise;
33+
}
34+
35+
function spawnWrapper(command, args) {
36+
var process = spawn(command, args);
37+
38+
var promise = new Promise(function(resolve, reject) {
39+
process.stdout.setEncoding("utf8");
40+
41+
process.stdout.on('data', function(stdout) {
42+
resolve(stdout);
43+
});
44+
45+
process.stderr.on('data', function(stderr) {
46+
console.error(stderr);
47+
});
48+
49+
process.on('close', function(code) {
50+
if (code !== 0) {
51+
reject('Command "' + command + '" failed. Please check for earlier errors');
52+
}
53+
});
54+
});
55+
56+
return promise;
57+
}

blurmonitor/util/startup.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/app/assets/assets.module.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
(function () {
2+
'use strict';
3+
4+
angular.module('BlurMonitor.assets', [
5+
'ngResource'
6+
]);
7+
})();
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
(function() {
2+
'use strict';
3+
4+
angular.module('BlurMonitor.assets').service('AssetsResource',
5+
['$resource', AssetsResource]);
6+
7+
function AssetsResource($resource) {
8+
var AppAssets = $resource('/api/assets/apps');
9+
var DistroAssets = $resource('/api/assets/distros');
10+
11+
this.getApps = AppAssets.query;
12+
this.getDistros = DistroAssets.query;
13+
}
14+
})();

src/app/pages/blurmonitor-dashboard/dashboard.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
<tr>
2323
<th class="black-muted-bg">Distro</th>
2424
<td>
25-
<img src="/assets/img/distributor-logo.png" img-load-error alt="Distributor Logo">
26-
{{vm.system.distro}}
25+
<img ng-src="/assets/img/app/distros/{{vm.system.distro.id}}.svg" img-load-error alt="Distributor Logo">
26+
{{vm.system.distro.description}}
2727
</td>
2828
</tr>
2929
<tr>

0 commit comments

Comments
 (0)