GUI: Added ESLint to gulp tasks
GUI: Linted files
Fixed an error in the build script

JIRA-TASKS: ONOS-6522, ONOS-6521

Change-Id: Ie72abfe6cbe21c8946f219be6193344b67ec6dd1
diff --git a/tools/gui/gulp-tasks/dev-server/index.js b/tools/gui/gulp-tasks/dev-server/index.js
new file mode 100644
index 0000000..f0dddf7
--- /dev/null
+++ b/tools/gui/gulp-tasks/dev-server/index.js
@@ -0,0 +1,69 @@
+import gulp from 'gulp';
+import browserSync from 'browser-sync';
+import fs from 'fs';
+import webserver from 'gulp-webserver';
+import proxy from 'http-proxy-middleware';
+
+console.log(proxy)
+
+let external_apps;
+
+const files = ['../../web/gui/src/main/webapp/**/*.js'];
+const defaultViews = fs.readdirSync('../../web/gui/src/main/webapp/app/view/');
+const viewNameMatcher = new RegExp(/\/onos\/ui\/app\/view\/(.+)\/.+\.(?:js|css|html)/);
+
+if (process.env.ONOS_EXTERNAL_APP_DIRS) {
+    let external_apps = process.env.ONOS_EXTERNAL_APP_DIRS.replace(/\s/,'').split(',');
+
+    external_apps = external_apps.reduce(function (dict, app) {
+        const pieces = app.split(':');
+        const appName = pieces[0];
+        const appPath = pieces[1];
+        dict[appName] = appPath;
+        return dict;
+    }, {});
+}
+
+const checkExternalApp = (url) => {
+    if(external_apps){
+        for(let i = 0; i < Object.keys(external_apps).length; i++){
+            const key = Object.keys(external_apps)[i];
+            if (url.indexOf(key) !== -1) {
+                return key;
+            }
+        }
+    }
+    return false;
+};
+
+const serve = () => {
+    browserSync.init({
+        proxy: {
+            target: 'http://localhost:8181',
+            ws: true,
+            middleware: [
+                proxy(['**/*.js', '!/onos/ui/onos.js'], { target: 'http://localhost:8189' }),
+                proxy('**/*.js.map', {
+                    target: 'http://localhost:8189',
+                    changeOrigin: true,
+                    logLevel: 'debug'
+                })
+            ]
+        }
+    });
+};
+
+const tasks = () => {
+    gulp.task('serve', ['bundle-js', 'proxy-server'], serve);
+    gulp.task('proxy-server', function() {
+        gulp.src('../../web/gui/src/main/webapp')
+            .pipe(webserver({
+                port: 8189,
+                path: '/onos/ui/'
+            }));
+    });
+};
+
+export default tasks();
+
+