Skip to content

Commit

Permalink
Merge a7d23de into dcc8af5
Browse files Browse the repository at this point in the history
  • Loading branch information
thesupremecommander committed Feb 18, 2015
2 parents dcc8af5 + a7d23de commit 6e71a4f
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 1 deletion.
23 changes: 23 additions & 0 deletions lib/bundle_views/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,27 @@ app.get('/view/:bundleName*', function(req, res, next) {
res.sendFile(fileLocation);
});

app.get('/view/:bundle/components/*', function(req, res, next) {
var bundleName = req.params.bundle;

var bundle = Bundles.find(bundleName);

if (!bundle) {
next();
return;
}

var resName = req.params[0];

var fileLocation = path.join(bundle.dir, 'bower_components', resName);

// Check if the file exists
if (!fs.existsSync(fileLocation)) {
next();
return;
}

res.sendFile(fileLocation);
});

module.exports = app;
22 changes: 21 additions & 1 deletion lib/bundles/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var jade = require('jade');
var util = require('util');
var Q = require('q');
var exec = require('child_process').exec;
var bower = require('bower');

var pjson = require('../../package.json');

Expand Down Expand Up @@ -54,7 +55,8 @@ module.exports = function parse(bundleName) {

// The following operation(s) are async, so we make a collective promise for them
return Q.all([
installNpmPackages(bundle)
installNpmPackages(bundle),
installBowerPackages(bundle)
])
.then(function() {
return bundle;
Expand Down Expand Up @@ -115,6 +117,24 @@ function installNpmPackages(bundle) {
return deferred.promise;
}

function installBowerPackages(bundle) {
var deferred = Q.defer();

// Do nothing if bower.json does not exist
var packagejsonPath = path.join(bundle.dir, 'bower.json');
if (!fs.existsSync(packagejsonPath)) {
log.trace('Nothing to install for bundle', bundle.name);
deferred.resolve();
return deferred.promise;
}

bower.commands.install(undefined, undefined, { cwd: bundle.dir })
.on('end', function(installed) { deferred.resolve(installed); })
.on('error', function(error) { deferred.reject(error); });

return deferred.promise;
}

function readDashboardPanels(bundle) {
bundle.dashboard.panels = [];
var manifestPath = path.join(bundle.dashboard.dir, 'panels.json');
Expand Down
24 changes: 24 additions & 0 deletions lib/dashboard/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var express = require('express'),
clientIncludes = require('../client_includes'),
favicon = require('express-favicon'),
path = require('path'),
fs = require('fs'),
utils = require('../util');

log.trace('Adding Express routes');
Expand All @@ -28,6 +29,29 @@ app.get('/dashboard', utils.authCheck, function(req, res) {
res.render('dashboard.jade', {bundles: Bundles.all(), ncgConfig: filteredConfig});
});

app.get('/dashboard/:bundle/components/*', function(req, res, next) {
var bundleName = req.params.bundle;

var bundle = Bundles.find(bundleName);

if (!bundle) {
next();
return;
}

var resName = req.params[0];

var fileLocation = path.join(bundle.dir, 'bower_components', resName);

// Check if the file exists
if (!fs.existsSync(fileLocation)) {
next();
return;
}

res.sendFile(fileLocation);
});

app.get('/logout', function(req, res){
req.logout();
res.redirect('/');
Expand Down

0 comments on commit 6e71a4f

Please sign in to comment.