git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
path: root/scripts/config_version-rugged.rb
diff options
context:
space:
mode:
authormail_redacted_for_web 2019-10-18 15:22:36 -0700
committermail_redacted_for_web 2019-10-18 15:22:36 -0700
commit458877f386123363234baf29b704a306bbcc0c02 (patch)
treec63198bd3aded9fbb1ef9f178bd9b92bad73cb28 /scripts/config_version-rugged.rb
parentbee4fc2740bf6b72675775815901165964676133 (diff)
parente46d209f19ad94c89652bec8064a8b6ce880a752 (diff)
downloadcontrol-repo-template-458877f386123363234baf29b704a306bbcc0c02.tar.bz2
Merge pull request #65 from smortex/portability-fixes
Improve portability
Diffstat (limited to 'scripts/config_version-rugged.rb')
-rwxr-xr-xscripts/config_version-rugged.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/config_version-rugged.rb b/scripts/config_version-rugged.rb
new file mode 100755
index 0000000..abb3390
--- /dev/null
+++ b/scripts/config_version-rugged.rb
@@ -0,0 +1,25 @@
+#!/opt/puppetlabs/puppet/bin/ruby
+begin
+ require 'rugged'
+ require 'socket'
+rescue LoadError
+ t = Time.new
+ puts t.to_i
+else
+ environmentpath = ARGV[0]
+ environment = ARGV[1]
+
+ # Get the hostname of the Puppet master compiling the catalog.
+ # Sometimes the hostname is the fqdn, so we'll take the first segment.
+ compiling_master = Socket.gethostname.split('.').first
+
+ # Get the path to the environment being compiled.
+ repo = Rugged::Repository.discover(File.join(environmentpath, environment))
+ head = repo.head
+
+ # First 12 characters of the sha1 hash of the newest commit.
+ commit_id = head.target_id[0...11]
+
+ # Show the compiling master, environment name, and commit ID.
+ puts "#{compiling_master}-#{environment}-#{commit_id}"
+end