UNPKG

windows

Version:

A collection of utilities for Windows for Node.js

83 lines (69 loc) 2.15 kB
var path = require('path'); var fs = require('fs'); var exists = require('./utility').exists; var resolve = require('./utility').resolve; var PATH = process.env.Path.split(';').filter(function(s){ return ~s.indexOf('node') }); if (PATH.length === 1) { PATH = PATH[0]; } else if (PATH.length > 1) { var bin = PATH.filter(function(s){ return ~s.indexOf('bin') }); if (bin.length === 1) { PATH = bin[0]; } else if (bin.length > 1) { PATH = bin.map(function(s){ return path.relative(__filename, s) }).sort(function(a,b){ return a.length - b.length })[0] } if (PATH.length > 1) { PATH = PATH[0]; } } //Bugfix taken from @schmittberger if (!exists(PATH)) { if (process.env.NODE_PATH) { PATH = process.env.NODE_PATH } else { throw new Error('No bin-PATH found'); } } module.exports = function runnable(files){ return files.map(function(file){ if (exists(file)) { var parts = { dir: path.dirname(file), base: path.basename(file), ext: path.extname(file) }; parts.name = parts.base.slice(0, -parts.ext.length); var cmdfile = path.resolve(PATH, parts.name+'.cmd'); fs.writeFileSync(cmdfile, '@node "'+path.join(parts.dir, parts.base)+'" %*'); return cmdfile + ' succesfully created'; } else { return file + ' not found'; } }); } /* var path = require('path'); var fs = require('fs'); var npm = require('npm'); var exists = require('./utility').exists; var resolve = require('./utility').resolve; module.exports = function runnable(files, callback){ npm.load(function(e, npm){ callback(files.map(function(file){ if (exists(file)) { var parts = { dir: path.dirname(file), base: path.basename(file), ext: path.extname(file) }; parts.name = parts.base.slice(0, -parts.ext.length); var cmdfile = resolve(npm.globalBin, parts.name+'.cmd'); fs.writeFileSync(cmdfile, '@node "'+path.join(parts.dir, parts.base)+'" %*'); return cmdfile + ' succesfully created'; } else { return file + ' not found'; } })); }); } */