/usr/local/lib/node_modules/pm2/lib/tools
NameSizeModeActions
Config.js63570644editdlrm
copydirSync.js28880644editdlrm
deleteFolderRecursive.js4800644editdlrm
find-package-json.js17720644editdlrm
fmt.js20880644editdlrm
IsAbsolute.js6060644editdlrm
isbinaryfile.js27000644editdlrm
json5.js234940644editdlrm
open.js16110644editdlrm
passwd.js11540644editdlrm
promise.min.js26490644editdlrm
sexec.js11960644editdlrm
treeify.js35410644editdlrm
which.js35750644editdlrm
xdg-open214360755editdlrm
Edit: /usr/local/lib/node_modules/pm2/lib/tools/passwd.js (1154B)
var fs = require('fs') var getUsers = function() { return fs.readFileSync('/etc/passwd') .toString() .split('\n') .filter(function (user) { return user.length && user[0] != '#'; }) .reduce(function(map, user) { var fields = user.split(':'); map[fields[0]] = map[fields[2]] = { username : fields[0], password : fields[1], userId : fields[2], groupId : fields[3], name : fields[4].split(',')[0], homedir : fields[5], shell : fields[6] }; return map }, {}) } var getGroups = function(cb) { var groups try { groups = fs.readFileSync('/etc/group') } catch(e) { return e } return groups .toString() .split('\n') .filter(function (group) { return group.length && group[0] != '#'; }) .reduce(function(map, group) { var fields = group.split(':'); map[fields[0]] = map[fields[2]] = { name : fields[0], password : fields[1], id : fields[2], members : fields[3].split(',') }; return map; }, {}) } module.exports = { getUsers, getGroups }