Files
2025-09-29 00:52:08 +02:00

79 lines
2.3 KiB
Ruby
Executable File

#
# File:: perforce_helper.rb
# Description:: Perforce helper functions.
#
# Author:: David Muir <david.muir@rockstarnorth.com>
# Date:: 1 December 2008
#
#-----------------------------------------------------------------------------
# Uses
#-----------------------------------------------------------------------------
require 'pipeline/config/project'
require 'pipeline/scm/perforce'
#-----------------------------------------------------------------------------
# Implementation
#-----------------------------------------------------------------------------
module Pipeline
module SCM
#
# == Description
# Monkey-patch some utility functions into our SCM::Perforce class.
#
class Perforce
#
# Return a Hash describing the user as known by the Perforce server.
# Will return nil if the user is invalid.
#
# The parameter may be a String username (e.g. 'david.muir') or an
# Integer changelist number.
#
def get_user( username_or_changelist )
if ( username_or_changelist.is_a?( String ) ) then
user = self.run_user( '-o', username_or_changelist ).shift
return ( user )
elsif ( username_or_changelist.is_a?( Integer ) ) then
changelist = self.run_describe( username_or_changelist ).shift
return ( get_user( changelist['user'] ) ) if ( changelist.has_key?( 'user' ) )
end
nil
end
#
# Return a String of the user's email address as known by the Perforce
# server. Will return nil if the user is invalid.
#
# The parameter may be a String username (e.g. 'david.muir') or an
# Integer changelist number.
#
def get_user_email( username_or_changelist )
user = self.get_user( username_or_changelist )
return ( user['Email'] ) if ( user.is_a?( Hash ) and user.has_key?( 'Email' ) )
nil
end
#
# Return a String of the user's fullname as known by the Perforce
# server. Will return nil if the user is invalid.
#
# The parameter may be a String username (e.g. 'david.muir') or an
# Integer changelist number.
#
def get_user_fullname( username_or_changelist )
user = self.get_user( username_or_changelist )
return ( user['FullName'] ) if ( user.is_a?( Hash ) and user.has_key?( 'FullName' ) )
nil
end
end
end # SCM module
end # Pipeline module
# perforce_helper.rb