var exec = require('child_process').exec var lsbRelease = /Release:\t(.*)/ var lsbCodename = /Codename:\t(.*)/ var releaseRegex = /(.*)/ module.exports = function(os,file,cb) { //first try lsb_release return lsbrelease(os,file,cb) } function lsbrelease(os,file,cb) { exec("lsb_release -a",function(e,stdout,stderr) { if(e) return releasefile(os,file,cb) var release = stdout.match(lsbRelease) if(release && release.length === 2) os.release = release[1] var codename = stdout.match(lsbCodename) if(codename && release.length === 2) os.codename = codename[1] cb(null,os) }) } function releasefile(os,file,cb) { var release = file.match(releaseRegex) if(release && release.length === 2) os.release = release[1] cb(null,os) }