hms_exe_versions.sh #1

  • //
  • guest/
  • perforce_software/
  • hms/
  • dev/
  • p4/
  • common/
  • lib/
  • hms_exe_versions.sh
  • View
  • Commits
  • Open Download .zip Download (3 KB)
# hms_exe_versions.sh
Version=1.0.1

declare ExeVersionsDataURL="https://updates.perforce.com/static/P4D/P4D.json"
declare ExeVersionsDataFile="${P4TMP:-/tmp}/P4D.json"
declare -i ExeVersionsDownloaded=0
declare -i ExeVersionsDataLoaded=0

#==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
#------------------------------------------------------------------------------

#==============================================================================
# HMS Library Functions.

#------------------------------------------------------------------------------
# get_latest_exe_version (Exe, Platform)
#
# Input:
# $1 - Exe name, e.g. 'p4d', 'p4broker', etc.
# $2 - Platform (optional), e.g. 'linux2x6x86_64'; this value is the default.
#------------------------------------------------------------------------------
function get_latest_exe_version () {
   vvmsg "CALL: get_latest_exe_version ($*)"
   declare Exe="${1:-Unset}"
   declare Platform="${2:-linux26x86_64}"
}

#------------------------------------------------------------------------------
# get_latest_exe_minor_version (Exe, MajorVersion, Platform)
#
# Input:
# $1 - Exe name, e.g. 'p4d', 'p4broker', etc.
# $2 - MajorVersion, e.g. 'r20'
# $3 - Platform (optional), e.g. 'linux2x6x86_64'; this value is the default.
#------------------------------------------------------------------------------
function get_latest_exe_patch_version () {
   vvmsg "CALL: get_latest_exe_patch_version ($*)"
   declare Exe="${1:-Unset}"
   declare MajorVersion="${2:-Unset}"
   declare Platform="${3:-linux26x86_64}"
}

#------------------------------------------------------------------------------
# get_latest_exe_patch_version (Exe, MajorVersion, MinorVersion, Platform)
#
# Input:
# $1 - Exe name, e.g. 'p4d', 'p4broker', etc.
# $2 - MajorVersion, e.g. 'r20'
# $3 - MinorVersion, e.g. '1' (the '1' in 'r20.1').
# $4 - Platform (optional), e.g. 'linux2x6x86_64'; this value is the default.
#------------------------------------------------------------------------------
function get_latest_exe_patch_version () {
   vvmsg "CALL: get_latest_exe_patch_version ($*)"
   declare Exe="${1:-Unset}"
   declare MajorVersion="${2:-Unset}"
   declare MinorVersion="${3:-Unset}"
   declare Platform="${4:-linux26x86_64}"
}

#------------------------------------------------------------------------------
function download_versions_data () {
   if [[ -r "$ExeVersionsDataFile" ]]; then
      msg "Using existing versions data file: $ExeVersionsDataFile"
      return
   fi

   cd "${P4TMP:-/tmp}" || return 1
   if curl -s -k -O "$ExeVersionsDataURL"; then
      msg "Downloaded $PWD/${ExeVersionsDataFile##*/}"
   else
      errmsg "Failed to download from URL: $ExeVersionsDataURL"
      cd - /dev/null 2>&1 ||:
      return 1
   fi
   cd - > /dev/null 2>&1 ||:
}

#------------------------------------------------------------------------------
function load_exe_versions () {
   declare -i Force="${1:-0}"

   if [[ "$Force" -eq 1 || ! -r "$ExeVersionsDataFile" ]]; then
      download_versions_data
   fi
}
# Change User Description Committed
#6 29182 C. Thomas Tyler Moved HMS files from /p4/common/bin -> /p4/common/site/bin.
Moved HMS files from /p4/common/lib -> /p4/common/site/lib.
Removed dependency on SDP libs so that HMS can be deployed
with a wider variety of SDP versions.
#5 27748 C. Thomas Tyler First pass at "outer to inner" implementation, adding a new test
for same.
Removed some DEMO HACK code; more to be removed.
#4 27694 C. Thomas Tyler Copyright Update; non-functional change.
#3 27310 C. Thomas Tyler Enhanced assignment per shellcheck.
#2 26713 C. Thomas Tyler WIP.
Logic now supports downloading version data files published
to updates.perforce.com.
#1 26538 C. Thomas Tyler Added preliminary files contributing to "hms upgrade", etc.