control-repo/scripts/config_version.rb
Nate McCurdy e5189b5515 Show the short hostname, not the FQDN in config_version
This is mainly a style and readability change.

Prior to this, on masters whose hostname is actually their FQDN, the
config_version script would show the entire FQDN. On nodes with really
longs FQDN's, it was not very nice to look at.

This takes the hostname of the master, splits it on dots (.) and takes
the first segment.

Now this: compile-master-02.int.lab.dmz.company-name.net-production-48fd18ab
Is this:  compile-master-02-production-48fd18ab
2017-12-15 12:52:14 -06:00

26 lines
763 B
Ruby
Executable File

#!/opt/puppetlabs/puppet/bin/ruby
begin
require 'rugged'
require 'socket'
rescue LoadError => e
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