summaryrefslogtreecommitdiff
path: root/puppet/modules/couchdb/lib/facter/couchdb_version.rb
blob: 3a721169bb5768fb36bac97d8fd5fc305233b4ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'facter'

def deb_installed_version ( name )
  # returns an empty string if package is not installed,
  # otherwise the version

  version = `apt-cache policy #{name} | grep Installed 2>&1`
  version.slice! "  Installed: "
  version.slice! "(none)"
  return version.strip.chomp
end

def couchdb_version
  bigcouch = deb_installed_version("bigcouch")
  if bigcouch.empty?
    couchdb = deb_installed_version("couchdb")
    if couchdb.empty?
      version = 'n/a'
    else
      version =  couchdb
    end
  else
    # bigcouch is currently only available in one version (0.4.2),
    # which includes couchdb 1.1.1
    version = '1.1.1'
  end
  return version
end

Facter.add(:couchdb_version) do
  setcode do
    couchdb_version
  end
end