git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
path: root/scripts/config_version.sh
blob: 0dbf718f942a8cc0f4b6aa64f62b5a7eb4738508 (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
35
#!/bin/sh

# Usage
if [ $# -ne 2 -o ! -d "$1" -o ! -d "$1/$2" ]; then
  echo "usage: $0 <environmentpath> <environment>" >&2
  exit 1
fi

# For portability, identify a preferred ruby executable to use
ruby() {
  [ -x /opt/puppetlabs/puppet/bin/ruby ] \
    && /opt/puppetlabs/puppet/bin/ruby "$@" \
    || /usr/bin/env ruby "$@"
}

# Determine how best to calculate a config_version
if [ -e $1/$2/.r10k-deploy.json ]; then
  # The environment was deployed using r10k. We will calculate the config
  # version using the r10k data.
  ruby $1/$2/scripts/config_version-r10k.rb $1 $2

elif [ -e /opt/puppetlabs/server/pe_version ]; then
  # This is a Puppet Enterprise system and we can rely on the rugged ruby gem
  # being available.
  ruby $1/$2/scripts/config_version-rugged.rb $1 $2

elif type git >/dev/null && [ -d "$1/$2/.git" ]; then
  # The git command is available.
  git --git-dir $1/$2/.git rev-parse HEAD

else
  # Nothing else available; just use the date.
  date +%s

fi