You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.4 KiB
						
					
					
				| #!/bin/bash
 | |
| # Copyright Broadcom, Inc. All Rights Reserved.
 | |
| # SPDX-License-Identifier: APACHE-2.0
 | |
| #
 | |
| # Library for managing versions strings
 | |
| 
 | |
| # shellcheck disable=SC1091
 | |
| 
 | |
| # Load Generic Libraries
 | |
| . /opt/bitnami/scripts/liblog.sh
 | |
| 
 | |
| # Functions
 | |
| ########################
 | |
| # Gets semantic version
 | |
| # Arguments:
 | |
| #   $1 - version: string to extract major.minor.patch
 | |
| #   $2 - section: 1 to extract major, 2 to extract minor, 3 to extract patch
 | |
| # Returns:
 | |
| #   array with the major, minor and release
 | |
| #########################
 | |
| get_sematic_version () {
 | |
|     local version="${1:?version is required}"
 | |
|     local section="${2:?section is required}"
 | |
|     local -a version_sections
 | |
| 
 | |
|     #Regex to parse versions: x.y.z
 | |
|     local -r regex='([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?'
 | |
| 
 | |
|     if [[ "$version" =~ $regex ]]; then
 | |
|         local i=1
 | |
|         local j=1
 | |
|         local n=${#BASH_REMATCH[*]}
 | |
| 
 | |
|         while [[ $i -lt $n ]]; do
 | |
|             if [[ -n "${BASH_REMATCH[$i]}" ]] && [[ "${BASH_REMATCH[$i]:0:1}" != '.' ]];  then
 | |
|                 version_sections[j]="${BASH_REMATCH[$i]}"
 | |
|                 ((j++))
 | |
|             fi
 | |
|             ((i++))
 | |
|         done
 | |
| 
 | |
|         local number_regex='^[0-9]+$'
 | |
|         if [[ "$section" =~ $number_regex ]] && (( section > 0 )) && (( section <= 3 )); then
 | |
|              echo "${version_sections[$section]}"
 | |
|              return
 | |
|         else
 | |
|             stderr_print "Section allowed values are: 1, 2, and 3"
 | |
|             return 1
 | |
|         fi
 | |
|     fi
 | |
| }
 |