Enabling UI live-reload for apps not in the ONOS source code
Change-Id: Ib88929a8825b7adf136d2b6b90d66db10549c165
diff --git a/web/gui/src/main/webapp/dev_server.js b/web/gui/src/main/webapp/dev_server.js
index 513d37a..2ded0ff 100644
--- a/web/gui/src/main/webapp/dev_server.js
+++ b/web/gui/src/main/webapp/dev_server.js
@@ -1,10 +1,8 @@
'use strict';
-var http = require('http');
-// var httpProxy = require('http-proxy');
-var connect = require('connect');
-var serveStatic = require('serve-static');
var path = require('path');
+var express = require('express');
+var app = express();
var conf = {
paths: {
@@ -13,17 +11,31 @@
port: '8182'
}
-var httpProxyInit = function (baseDir) {
+if (process.env.ONOS_EXTERNAL_APP_DIRS) {
+ var external_apps = process.env.ONOS_EXTERNAL_APP_DIRS.replace(/\s/,'').split(',');
+ external_apps.forEach(function(a, i){
+ let [appName, appPath] = a.split(':');
+ conf.paths[appName] = appPath;
+ });
+}
- var app = connect();
+var httpProxyInit = function (baseDirs) {
- app.use(serveStatic(path.join(__dirname, baseDir)));
+ Object.keys(baseDirs).forEach(dir => {
+ var d = path.isAbsolute(baseDirs[dir]) ? baseDirs[dir] : path.join(__dirname, baseDirs[dir]);
+ app.use(express.static(d));
+ });
- var server = http.createServer(app);
+ app.get('/', function (req, res) {
+ res.send('Hello World!');
+ });
- server.listen(conf.port, function(){
- console.log('Dev server is up and listening on http://localhost:', conf.port);
+ app.listen(conf.port, function () {
+ console.log(`Dev server is up and listening on http://localhost:${conf.port}!`);
});
};
-httpProxyInit(conf.paths.root);
\ No newline at end of file
+httpProxyInit(conf.paths);
+
+
+