27 lines
787 B
JavaScript
27 lines
787 B
JavaScript
|
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)
|
||
|
}
|