From 9b66718b4f0b85a4e3b2b286977db74138b7439c Mon Sep 17 00:00:00 2001
From: Spencer Krum <nibz@spencerkrum.com>
Date: Fri, 17 Apr 2015 15:17:29 -0700
Subject: [PATCH] Add utility for inspecting puppet module versions

This attempts to determine what versions of which modules are
in place on a system. It can handle both branch and tag checkouts.
It assumes all modules are pulled from git.

Change-Id: Id4100e3c967506e7b244534115185eeeddaac74f
---
 tools/module_versions.sh | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 tools/module_versions.sh

diff --git a/tools/module_versions.sh b/tools/module_versions.sh
new file mode 100644
index 0000000000..617a41ee7b
--- /dev/null
+++ b/tools/module_versions.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# Copyright 2014 Hewlett-Packard Development Company, L.P.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+
+for mod in $(ls /etc/puppet/modules/); do
+    echo -n "${mod}: "
+    cd /etc/puppet/modules/$mod
+    branch=$(git rev-parse --abbrev-ref HEAD)
+    if [[ $branch == "HEAD" ]]; then
+        tag=$(git name-rev --name-only --tags $(git rev-parse HEAD))
+        version=$tag
+    else
+        version=$branch
+    fi
+    echo $version
+    cd - >/dev/null
+
+done