2017-12-15 18:48:47 +00:00
|
|
|
#!/opt/puppetlabs/puppet/bin/ruby
|
2015-11-20 14:12:47 +00:00
|
|
|
begin
|
|
|
|
require 'rugged'
|
2017-07-05 23:55:39 +00:00
|
|
|
require 'socket'
|
2015-11-20 14:12:47 +00:00
|
|
|
rescue LoadError => e
|
|
|
|
t = Time.new
|
|
|
|
puts t.to_i
|
|
|
|
else
|
|
|
|
environmentpath = ARGV[0]
|
|
|
|
environment = ARGV[1]
|
2015-08-25 18:47:19 +00:00
|
|
|
|
2017-07-05 23:55:39 +00:00
|
|
|
# Get the hostname of the Puppet master compiling the catalog.
|
2017-12-15 18:52:14 +00:00
|
|
|
# Sometimes the hostname is the fqdn, so we'll take the first segment.
|
|
|
|
compiling_master = Socket.gethostname.split('.').first
|
2015-08-25 18:47:19 +00:00
|
|
|
|
2017-07-05 23:55:39 +00:00
|
|
|
# Get the path to the environment being compiled.
|
|
|
|
repo = Rugged::Repository.discover(File.join(environmentpath, environment))
|
|
|
|
head = repo.head
|
2015-08-25 18:47:19 +00:00
|
|
|
|
2017-07-05 23:55:39 +00:00
|
|
|
# First 12 characters of the sha1 hash of the newest commit.
|
|
|
|
commit_id = head.target_id[0...11]
|
2015-08-25 18:47:19 +00:00
|
|
|
|
2017-07-05 23:55:39 +00:00
|
|
|
# Show the compiling master, environment name, and commit ID.
|
|
|
|
puts "#{compiling_master}-#{environment}-#{commit_id}"
|
2015-11-20 14:12:47 +00:00
|
|
|
end
|