HEX
Server: Apache
System: Linux dinesh8189 5.15.98-grsec-sharedvalley-2.lc.el8.x86_64 #1 SMP Thu Mar 9 09:07:30 -03 2023 x86_64
User: cgmgerenciamento1 (814285)
PHP: 8.1.26
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/package.rb
# frozen_string_literal: true
module Puppet::Util::Package
  def versioncmp(version_a, version_b, ignore_trailing_zeroes = false)
    vre = /[-.]|\d+|[^-.\d]+/

    if ignore_trailing_zeroes
      version_a = normalize(version_a)
      version_b = normalize(version_b)
    end

    ax = version_a.scan(vre)
    bx = version_b.scan(vre)

    while (ax.length>0 && bx.length>0)
      a = ax.shift
      b = bx.shift

      next      if a == b
      return -1 if a == '-'
      return 1  if b == '-'
      return -1 if a == '.'
      return 1  if b == '.'
      if a =~ /^\d+$/ && b =~ /^\d+$/
        return a.to_s.upcase <=> b.to_s.upcase if a =~ /^0/ || b =~ /^0/
        return a.to_i <=> b.to_i
      end
      return a.upcase <=> b.upcase
    end
    version_a <=> version_b
  end
  module_function :versioncmp

  def self.normalize(version)
    version = version.split('-')
    version.first.sub!(/([\.0]+)$/, '')

    version.join('-')
  end
  private_class_method :normalize
end