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) }