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