This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
766 B
39 lines
766 B
'use strict'; |
|
const path = require('path'); |
|
const pathKey = require('path-key'); |
|
|
|
module.exports = opts => { |
|
opts = Object.assign({ |
|
cwd: process.cwd(), |
|
path: process.env[pathKey()] |
|
}, opts); |
|
|
|
let prev; |
|
let pth = path.resolve(opts.cwd); |
|
const ret = []; |
|
|
|
while (prev !== pth) { |
|
ret.push(path.join(pth, 'node_modules/.bin')); |
|
prev = pth; |
|
pth = path.resolve(pth, '..'); |
|
} |
|
|
|
// ensure the running `node` binary is used |
|
ret.push(path.dirname(process.execPath)); |
|
|
|
return ret.concat(opts.path).join(path.delimiter); |
|
}; |
|
|
|
module.exports.env = opts => { |
|
opts = Object.assign({ |
|
env: process.env |
|
}, opts); |
|
|
|
const env = Object.assign({}, opts.env); |
|
const path = pathKey({env}); |
|
|
|
opts.path = env[path]; |
|
env[path] = module.exports(opts); |
|
|
|
return env; |
|
};
|
|
|